Ë
    u™ãj$; ã                   ó|  — 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 d dlmZmZ ej*                  j-                  e d¬«      Zd„ Z ej2                  dd	gd
„ ¬«      d„ «       Z ej2                  d ej6                  de¬«      gd„ ¬«      d„ «       Zd„ Z G d„ d«      Z G d„ d«      Z G d„ d«      Z  G d„ d«      Z! 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' G d&„ d'«      Z(ej*                  jS                  d(d)d*d+gfd,d-d.gfd/d*d+gfg«      ej*                  jU                  d0¬«      d1„ «       «       Z+ej*                  jS                  d2d3e jX                  fd4e jZ                  fd5e j\                  fd6e j^                  fg«      d7„ «       Z0y)8é    N)Ú
TokenError)ÚNumExprClobberingErrorÚUndefinedVariableError)ÚNUMEXPR_BLOCKED_VERSIONÚNUMEXPR_INSTALLEDú/numexpr not installed or an unsupported version©Úreasonc                  ó<   — t         st        j                  d«       y y )Nr   )r   ÚpytestÚskip© ó    úm/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/frame/test_query_eval.pyÚskip_if_no_numexpr_fixturer      s   € õ Ü�‰ÐEÕFð r   ÚpythonÚpandasc                 ó   — | S ©Nr   ©Úxs    r   ú<lambda>r   !   s   € ¸1€ r   )Ú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=©r   r   )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                 ó4   — t        j                  dg d¢i«      S )NÚA©é   é   é   ©ÚpdÚ	DataFrame©Úselfs    r   ÚdfzTestCompat.df4   s   € ä�|‰|˜S¢)Ð,Ó-Ð-r   c                 ó&   — ||j                   dkD     S )Nr   ©r-   ©r6   r7   s     r   Ú	expected1zTestCompat.expected18   s   € à�"—$‘$˜‘(‰|Ðr   c                 ó    — |j                   dz   S ©Nr/   r9   r:   s     r   Ú	expected2zTestCompat.expected2<   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©r6   r7   r;   r>   Úresults        r   Útest_query_defaultzTestCompat.test_query_default@   s>   € ð —‘˜%“ˆÜ
×Ñ˜f iÔ0Ø—‘˜“ˆÜ
×Ñ˜v yÕ1r   c                 ó¨   — |j                  dd ¬«      }t        j                  ||«       |j                  dd ¬«      }t        j                  ||«       y )Nr@   ©r%   rA   rB   rH   s        r   Útest_query_NonezTestCompat.test_query_NoneH   sF   € Ø—‘˜%¨�Ó-ˆÜ
×Ñ˜f iÔ0Ø—‘˜ t�Ó,ˆÜ
×Ñ˜v yÕ1r   c                 ó¨   — |j                  dd¬«      }t        j                  ||«       |j                  dd¬«      }t        j                  ||«       y )Nr@   r   rL   rA   rB   rH   s        r   Útest_query_pythonzTestCompat.test_query_pythonN   sF   € Ø—‘˜%¨�Ó1ˆÜ
×Ñ˜f iÔ0Ø—‘˜ x�Ó0ˆÜ
×Ñ˜v yÕ1r   c                 óè  — t         rS|j                  dd¬«      }t        j                  ||«       |j	                  dd¬«      }t        j
                  ||«       y t        �dt        › d�}n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!   rL   rA   znumexpr z8 is installed, but can silently return incorrect resultsz~'numexpr' is not installed or an unsupported version. Cannot use engine='numexpr' for query/eval if 'numexpr' is not installed©Úmatch)
r   rC   rD   rE   rF   rG   r   r   ÚraisesÚImportError)r6   r7   r;   r>   rI   Úmsgs         r   Útest_query_numexprzTestCompat.test_query_numexprT   sá   € ÝØ—X‘X˜e¨I�XÓ6ˆFÜ×!Ñ! &¨)Ô4Ø—W‘W˜U¨9�WÓ5ˆFÜ×"Ñ" 6¨9Ô5Øä"Ð.àÔ3Ð4ð 55ð 5ñ ð!ð ô
 �]‰]œ;¨cÔ2ñ 	.Ø�H‰H�U 9ˆHÔ-÷	.ä�]‰]œ;¨cÔ2ñ 	-Ø�G‰G�E )ˆGÔ,÷	-ð 	-÷	.ð 	.ú÷	-ð 	-ús   ÂCÂ?C(ÃC%Ã(C1N)Ú__name__Ú
__module__Ú__qualname__r   Úfixturer7   r;   r>   rJ   rM   rO   rV   r   r   r   r+   r+   3   s\   „ Ø‡^�^ñ.ó ð.ð ‡^�^ñó ðð ‡^�^ñó ðò2ò2ò2ó-r   r+   c                   óz  — 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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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                 óN  — t        j                  dt        |«      t        d«      ¬«      }d|j                  d<   |j                  «       }t        j                  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Úcolumnsr0   r   éÿÿÿÿ©ro   zbase z dfzm )r_   re   )rb   rh   )r3   r4   ÚrangeÚlistÚilocÚmeanÚnpÚtileÚvaluesÚreshaperF   rD   rE   Úgetattr)
r6   Úop_strÚopÚropr]   r7   ÚmÚbaseÚexpectedrI   s
             r   Útest_opszTestDataFrameEval.test_opso   s  € ô �\‰\˜!¤5¨£8´T¸&³\ÔBˆØˆ�‰�‰
Ø�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                 ó„  — t        j                  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-   r0   i¨a  r   é   r/   é   )r3   r4   rv   ÚrandomÚdefault_rngÚstandard_normalÚnanrt   ÚisnanrD   rE   )r6   r7   r€   rI   s       r   Útest_dataframe_sub_numexpr_pathz1TestDataFrameEval.test_dataframe_sub_numexpr_path•   s�   € ô �\‰\˜3¤§	¡	× 5Ñ 5°aÓ 8× HÑ HÈÓ OÐPÓQˆÜ—v‘vˆ�‰��!ˆØ”r—x‘x §¡¨¨" Ó.Ñ.ˆØ”b—h‘h˜r“lÑ"×(Ñ(¨¨2Ð.ˆÜ
×Ñ˜f hÕ/r   c                 ó¸   — t        j                  ddgdg¬«      }|j                  d«      }t        j                  ddgd¬«      }t	        j
                  ||«       y )	Nr/   r0   Úarq   z((a - 1) / (a - 1)).fillna(0)g        g      ð?©Úname©r3   r4   rF   ÚSeriesrD   rG   ©r6   r7   rI   r€   s       r   Útest_eval_method_call_fillnaz.TestDataFrameEval.test_eval_method_call_fillnaž   sK   € ä�\‰\˜1˜a˜&¨3¨%Ô0ˆØ—‘Ð8Ó9ˆÜ—9‘9˜c 3˜Z¨cÔ2ˆÜ
×Ñ˜v xÕ0r   c                 ó°   — t        j                  g d¢g d¢dœ«      }|j                  d|¬«      }|j                  ddg   }t	        j
                  ||«       y )N)r   r/   r0   )rŒ   NN)ÚidrŽ   zname.isnull()rL   r/   r0   ©r3   r4   rC   rt   rD   rE   )r6   r%   r7   rI   r€   s        r   Útest_query_method_call_isnullz/TestDataFrameEval.test_query_method_call_isnull¥   sK   € ô �\‰\¢Ò4EÑFÓGˆØ—‘˜/°&�Ó9ˆØ—7‘7˜A˜q˜6‘?ˆÜ
×Ñ˜f hÕ/r   c                 óF  — t        j                  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.   )rŒ   Úbr˜   ©r-   ÚBz%expr must be a string to be evaluatedrQ   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   ©r3   r4   r   rS   Ú
ValueErrorrC   ©r6   r7   rU   s      r   Útest_query_non_strz$TestDataFrameEval.test_query_non_str®   s   € ä�\‰\¢	²Ñ@ÓAˆà5ˆÜ�]‰]œ:¨SÔ1ñ 	+Ø�H‰HÑ)Ô*÷	+ô �]‰]œ:¨SÔ1ñ 	Ø�H‰H�SŒM÷	ð 	÷	+ð 	+ú÷	ð 	ús   ºBÁ0BÂBÂB c                 ó¼   — t        j                  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 stringrQ   Ú r�   rŸ   s      r   Útest_query_empty_stringz)TestDataFrameEval.test_query_empty_string¹   sH   € ä�\‰\˜3¢	Ð*Ó+ˆà.ˆÜ�]‰]œ:¨SÔ1ñ 	Ø�H‰H�RŒL÷	÷ 	ñ 	ús   ·AÁAc                 ó   — t        j                  t        d«      t        d«      t        d«      dœ«      j                  ddi¬«      }|j	                  d||¬«      }t        j                  g d¢gg d	¢d
g¬«      }t        j                  ||«       y )Nr1   ©r-   rš   ÚCrš   r-   rq   zC == 1©r%   r    )r/   r/   r/   )r-   r-   r¦   r/   )ro   rn   )r3   r4   rr   ÚrenamerC   rD   rE   )r6   r%   r    r7   ÚresÚexpects         r   Ú test_query_duplicate_column_namez2TestDataFrameEval.test_query_duplicate_column_nameÁ   sw   € Ü�\‰\¤ a£¬u°Q«x¼eÀA»hÑGÓH×OÑOØ˜#�Jð Pó 
ˆð �h‰h�x¨°vˆhÓ>ˆä—‘šy˜k²?È1È#ÔNˆä
×Ñ˜c 6Õ*r   c                 ó   — t        j                  t        d«      t        dd«      t        d«      dœ«      j                  ddi¬«      }d}t	        j
                  t        |¬	«      5  |j                  d
||¬«       d d d «       t        j                  t        d«      t        dd«      dœ«      j                  ddi¬«      }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)Nr1   é
   é   r¥   rš   r-   rq   z)expr referenced a duplicated column labelrQ   zA == 1r§   r™   )r3   r4   rr   r¨   r   rS   rž   rC   )r6   r%   r    r7   rU   Údf2s         r   Ú+test_query_duplicate_column_name_referencedz=TestDataFrameEval.test_query_duplicate_column_name_referencedÌ   sî   € ô �\‰\¤ a£¬u°R¸«}Ä5ÈÃ8ÑLÓM×TÑTØ˜#�Jð Uó 
ˆð :ˆÜ�]‰]œ:¨SÔ1ñ 	=Ø�H‰H�X f°VˆHÔ<÷	=ô
 �l‰l¤ q£´°b¸"³Ñ>Ó?×FÑFØ˜#�Jð Gó 
ˆô �]‰]œ:¨SÔ1ñ 	>Ø�I‰I�h v°fˆIÔ=÷	>ð 	>÷	=ð 	=ú÷	>ð 	>ús   Á%C8ÃDÃ8DÄDc                 óÌ   — t        |«       t        j                  g d¢g d¢gg d¢¬«      }d}|j                  d||¬«      }t	        j
                  ||j                  dg   «       y )	Nr.   ©r^   rƒ   é   )ÚAAr´   rš   rq   r^   zB > @AAr§   r/   )r)   r3   r4   rC   rD   rE   rt   )r6   r%   r    r7   r´   rI   s         r   Ú3test_query_duplicate_column_name_local_not_shadowedzETestDataFrameEval.test_query_duplicate_column_name_local_not_shadowedß   sU   € ô 	! Ô(Ü�\‰\š9¢iÐ0Ò:KÔLˆØˆà—‘˜)¨F¸6�ÓBˆä
×Ñ˜f b§g¡g¨q¨c¡lÕ3r   rŽ   )Ú	TimestampÚdatetimers   Útuplec                 óÞ   — t        j                  dddgit        j                  ddg|¬«      ¬«      }|j                  |› d�||¬	«      }t	        j
                  ||j                  d
g   «       y )Nr˜   r1   r^   r/   é   r�   ©rn   z < 10r§   r   )r3   r4   ÚIndexrC   rD   rE   rt   )r6   rŽ   r%   r    r7   rI   s         r   Ú.test_query_index_name_shadowing_default_globalz@TestDataFrameEval.test_query_index_name_shadowing_default_globalë   s_   € ô
 �\‰\˜3  A ˜-¬r¯x©x¸¸B¸ÀdÔ/KÔLˆà—‘˜T˜F %˜.°À�ÓGˆä
×Ñ˜f b§g¡g¨q¨c¡lÕ3r   c                 ó0  — t        |«        G d„ d«      }t        j                  dg d¢i«      }|j                  d||¬«      }t	        j
                  ||j                  dg   «       |j                  d||¬«      }t	        j                  ||d   dk(  «       y )	Nc                   ó   — e Zd ZdZy)úBTestDataFrameEval.test_query_eval_local_class_attribute.<locals>.Ar0   N)rW   rX   rY   rŒ   r   r   r   r-   rÀ   ú   s   „ Ø‰Ar   r-   r   r.   z	x == @A.ar§   r/   r0   )	r)   r3   r4   rC   rD   rE   rt   rF   rG   )r6   r%   r    r-   r7   rI   s         r   Ú%test_query_eval_local_class_attributez7TestDataFrameEval.test_query_eval_local_class_attributeö   sƒ   € ä  Ô(÷	ñ 	ô �\‰\˜3¢	Ð*Ó+ˆØ—‘˜+¨f¸V�ÓDˆÜ
×Ñ˜f b§g¡g¨q¨c¡lÔ3Ø—‘˜¨V¸F�ÓCˆÜ
×Ñ˜v r¨#¡w°!¡|Õ4r   c                 óŽ  — t        |«       t        j                  g d¢g d¢gg d¢¬«      }|j                  d||¬«      }t	        j
                  ||j                  dg   «       t        j                  g d¢g d¢gg d¢¬«      }t        j                  t        d	¬
«      5  |j                  d||¬«       d d d «       y # 1 sw Y   y xY w)Nr.   r²   )r/   r/   Ú1rq   z`1` == 3r§   r   )r/   rÃ   r/   z$referenced a duplicated column labelrQ   )
r)   r3   r4   rC   rD   rE   rt   r   rS   rž   )r6   r%   r    r7   rI   r¯   s         r   Ú7test_query_duplicate_column_name_cleaned_name_collisionzITestDataFrameEval.test_query_duplicate_column_name_cleaned_name_collision  s¢   € ô 	! Ô(ô �\‰\š9¢iÐ0º+ÔFˆØ—‘˜*¨V¸F�ÓCˆÜ
×Ñ˜f b§g¡g¨q¨c¡lÔ3ô �l‰lšI¢yÐ1º;ÔGˆÜ�]‰]œ:Ð-SÔTñ 	@Ø�I‰I�j¨¸ˆIÔ?÷	@÷ 	@ñ 	@ús   ÂB;Â;Cc                 ó6  — t        j                  g d¢g d¢g d¢dœ«      }g d¢|_        |j                  d||¬«      }t	        j
                  ||j                  dg   «       |j                  d	||¬«      }t	        j
                  ||j                  d
dg   «       y )Nr.   r²   )é   é   é	   ©rŒ   r˜   Úc)rŒ   rŒ   rÊ   z(a == 1).any(axis=1)r§   r   za.max(axis=1) > 4r/   r0   )r3   r4   ro   rC   rD   rE   rt   ©r6   r%   r    r7   rI   s        r   Ú0test_query_duplicate_column_name_reduced_to_maskzBTestDataFrameEval.test_query_duplicate_column_name_reduced_to_mask  s€   € ô �\‰\¢	²	Â	ÑJÓKˆÚ$ˆŒ
à—‘Ð0¸È�ÓOˆÜ
×Ñ˜f b§g¡g¨q¨c¡lÔ3à—‘Ð-°fÀV�ÓLˆÜ
×Ñ˜f b§g¡g¨q°!¨f¡oÕ6r   c                 óÖ  — t        |«       t        j                  t        j                  dd«      j                  dd«      g d¢¬«      }|j                  d||¬«      }t        j                  |||dkD     «       |||d	   j                  «       kD     }|j                  «       j                  «       j                  «       sJ ‚|j                  d
||¬«      }t        j                  ||«       y )Néýÿÿÿr1   r0   ©rŒ   rŒ   r˜   rq   z@df > 0r§   r   r˜   z@df > b.min())r)   r3   r4   rv   Úarangery   rC   rD   rE   ÚminÚnotnaÚany©r6   r%   r    r7   rI   r€   s         r   Ú1test_query_duplicate_column_name_whole_frame_maskzCTestDataFrameEval.test_query_duplicate_column_name_whole_frame_mask   sÁ   € ô 	! Ô(Ü�\‰\œ"Ÿ)™) B¨Ó*×2Ñ2°1°aÓ8Â/ÔRˆà—‘˜)¨F¸6�ÓBˆÜ
×Ñ˜f b¨¨a©¡jÔ1ð �b˜2˜c™7Ÿ;™;›=Ñ(Ñ)ˆØ�~‰~Ó×#Ñ#Ó%×)Ñ)Ô+Ð+Ð+Ø—‘˜/°&À�ÓHˆÜ
×Ñ˜f hÕ/r   c                 óâ   — t        j                  g d¢g d¢d¬«      j                  «       }|j                  d||¬«      }t        j                  ddgidg¬	«      }t        j                  ||«       y )
Nr.   ©r/   r/   r0   Úcol©rn   rŽ   z(index == 1) & (col == 2)r§   r0   r/   r»   )r3   r�   Úto_framerC   r4   rD   rE   rÔ   s         r   Ú test_query_duplicate_index_labelz2TestDataFrameEval.test_query_duplicate_index_label/  s\   € ô �Y‰Y’yª	¸Ô>×GÑGÓIˆà—‘Ð5¸fÈV�ÓTˆä—<‘< ¨¨ °Q°CÔ8ˆÜ
×Ñ˜f hÕ/r   c                 ón  — t        |«       t        j                  dt        j                  d«      t        j                  t        j                  gi«      }t        j                  d «      5  |j                  d||¬«      }d d d «       t        j                  |j                  d d «       y # 1 sw Y   Œ-xY w)NÚsentú
2024-01-14z
sent == ''r§   r   ©
r)   r3   r4   r¶   ÚNaTrD   Úassert_produces_warningrC   rE   rt   rË   s        r   Ú1test_query_datetime_compared_to_string_no_warningzCTestDataFrameEval.test_query_datetime_compared_to_string_no_warning9  sŽ   € ô
 	! Ô(Ü�\‰\˜6¤B§L¡L°Ó$>ÄÇÁÌÏÉÐ#OÐPÓQˆä×'Ñ'¨Ó-ñ 	JØ—X‘X˜l°6À&�XÓIˆF÷	Jô 	×Ñ˜f b§g¡g¨b¨q kÕ2÷	Jð 	Júó   Á*B+Â+B4c                 ón  — t        |«       t        j                  dt        j                  d«      t        j                  t        j                  gi«      }t        j                  d «      5  |j                  d||¬«      }d d d «       t        j                  |j                  d d «       y # 1 sw Y   Œ-xY w)NrÝ   rÞ   zsent in ['2024-01-14']r§   r   rß   rË   s        r   Ú)test_query_datetime_in_strings_no_warningz;TestDataFrameEval.test_query_datetime_in_strings_no_warningF  s�   € ô 	! Ô(Ü�\‰\˜6¤B§L¡L°Ó$>ÄÇÁÌÏÉÐ#OÐPÓQˆä×'Ñ'¨Ó-ñ 	VØ—X‘XÐ6¸vÈf�XÓUˆF÷	Vô 	×Ñ˜f b§g¡g¨b¨q kÕ2÷	Vð 	Vúrã   c                 óŠ  — t        j                  t        d«      t        dd«      t        d«      dœ«      j                  ddi¬«      }|j	                  d||¬	«      }t        j                  d|f||¬
«      }t        j                  ddgddgddggddg¬«      }t        j                  ||«       t        j                  ||«       y )Nr1   r­   r®   rÉ   r˜   rŒ   rq   za == 1r§   )Ú	resolversr%   r    FT)r3   r4   rr   r¨   rF   rD   rE   )r6   r%   r    r7   Úresult_frameÚresult_funcr€   s          r   Útest_eval_duplicate_column_namez1TestDataFrameEval.test_eval_duplicate_column_nameQ  s¶   € ä�\‰\¤ a£¬u°R¸«}Ä5ÈÃ8ÑLÓM×TÑTØ˜#�Jð Uó 
ˆð —w‘w˜x°¸v�wÓFˆÜ—g‘g˜h°2°%ÀÈvÔVˆä—<‘<Ø�Uˆ^˜d E˜]¨U°E¨NÐ;Ø˜#�Jô
ˆô
 	×Ñ˜l¨HÔ5Ü
×Ñ˜k¨8Õ4r   c                 ó@  — t        j                  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 )
Nr0   ©r­   r0   Úabrq   rŒ   r/   r˜   úa + b©rç   )r3   r4   rv   r…   r†   r‡   rs   rF   )r6   r7   Údict1Údict2s       r   Útest_eval_resolvers_as_listz-TestDataFrameEval.test_eval_resolvers_as_listb  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        j                  t        j                  j	                  d«      j                  d«      t        d«      ¬«      }ddi}|j                  d|g¬«      }|d   |d	   |d   z  z   }t        j                  ||«       y )
Nr0   rì   rí   rq   rÊ   z	a + b * crï   rŒ   r˜   )
r3   r4   rv   r…   r†   r‡   rs   rF   rD   rG   )r6   r7   rð   rI   r€   s        r   Útest_eval_resolvers_combinedz.TestDataFrameEval.test_eval_resolvers_combinedl  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        j                  dddgi«      }|j                  d«      }t        j                  ddgddgdœ«      }t        j                  ||«       y )NÚa1ÚYÚNzc = ((a1 == 'Y') & True)TF)rö   rÊ   )r3   r4   rF   rD   rE   )r6   r7   r©   r€   s       r   Útest_eval_object_dtype_binopz.TestDataFrameEval.test_eval_object_dtype_binopy  sS   € ä�\‰\˜4 # s Ð,Ó-ˆØ�g‰gÐ0Ó1ˆÜ—<‘<¨¨S z¸¸u¸Ñ FÓGˆÜ
×Ñ˜c 8Õ,r   c                 óì   — t        |«       t        j                  g d¢d¬«      j                  «       }|j	                  d||¬«      }t        j                  |d   «      }t        j                  ||«       y )N©gš™™™™™É?g      ø?gffffff@rŒ   r�   z@np.floor(a)r§   )	r)   r3   r�   rÚ   rF   rv   ÚfloorrD   rG   ©r6   r%   r    r7   r©   r€   s         r   Útest_using_numpyz"TestDataFrameEval.test_using_numpy€  sY   € ä  Ô(Ü�Y‰Y’¨SÔ1×:Ñ:Ó<ˆØ�g‰g�n¨V¸FˆgÓCˆÜ—8‘8˜B˜s™GÓ$ˆÜ
×Ñ˜x¨Õ-r   c                 ó  — t        |«       t        j                  }t        j                  ddgd¬«      j                  «       }|j                  d||¬«      }t        j                  |d   d«      }t        j                  ||«       y )NgìQ¸…ëñ?g®Gáz@rŒ   r�   z@around(a, 1)r§   r/   )	r)   rv   Úaroundr3   r�   rÚ   rF   rD   rG   )r6   r%   r    r   r7   rI   r€   s          r   Ú)test_using_local_function_with_scalar_argz;TestDataFrameEval.test_using_local_function_with_scalar_argˆ  sj   € ô 	! Ô(Ü—‘ˆÜ�Y‰Y˜˜d�|¨#Ô.×7Ñ7Ó9ˆØ—‘˜°À�ÓGˆÜ—9‘9˜R ™W aÓ(ˆÜ
×Ñ˜v xÕ0r   c                 ó°   — t        j                  g d¢d¬«      j                  «       }|j                  d||¬«      }|d   }t	        j
                  ||«       y )Nrû   rŒ   r�   r§   )r3   r�   rÚ   rF   rD   rG   rý   s         r   Útest_eval_simplez"TestDataFrameEval.test_eval_simple’  sH   € Ü�Y‰Y’¨SÔ1×:Ñ:Ó<ˆØ�g‰g�c &°ˆgÓ8ˆØ�c‘7ˆÜ
×Ñ˜x¨Õ-r   c                 óœ  — |dk(  r1t         j                  j                  d¬«      }|j                  |«       t	        j
                  t	        j                  g d¢«      t	        j                  g d¢«      dœ«      }|j                  d||¬«      }t	        j                  t	        j                  g d	¢«      «      }t        j                  ||«       y )
Nr!   z/numexpr does not support extension array dtypesr	   r.   r²   ©rŒ   r˜   za / br§   )g      Ð?gš™™™™™Ù?ç      à?)r   ÚmarkÚxfailÚapplymarkerr3   r4   ÚarrayrF   r�   rD   rG   )r6   r%   r    r   r  r7   rI   r€   s           r   Útest_extension_array_evalz+TestDataFrameEval.test_extension_array_eval˜  s—   € à�YÒÜ—;‘;×$Ñ$ØHð %ó ˆDð ×Ñ Ô%Ü�\‰\¤§¡ªÓ 3¼"¿(¹(Â9Ó:MÑNÓOˆØ—‘˜¨¸�Ó?ˆÜ—9‘9œRŸX™XÒ&8Ó9Ó:ˆÜ
×Ñ˜v xÕ0r   c                 ó¸   — t        j                  dgdgdœ«      }|j                  d||¬«      }t        j                  dg«      }t	        j
                  ||«       y )Ny      ð?       @y      ð?      ð?r  za/br§   y      ø?      à?r�   rÔ   s         r   Útest_complex_evalz#TestDataFrameEval.test_complex_eval¤  sM   € ä�\‰\  °¨xÑ8Ó9ˆØ—‘˜ v°f�Ó=ˆÜ—9‘9˜j˜\Ó*ˆÜ
×Ñ˜v xÕ0r   c                 óÜ   — t        j                  t        j                  ddd¬«      t        d«      dœ«      }|j	                  d||¬«      }||d   d	kD     }t        j                  ||«       y )
NÚ2018rƒ   r÷   )ÚperiodsÚfreq)ÚyearÚvalzyear > '2020'r§   r  Ú2020)r3   r4   Úperiod_rangerr   rC   rD   rE   rÔ   s         r   Útest_query_period_dtypez)TestDataFrameEval.test_query_period_dtype«  se   € ä�\‰\äŸ™¨¸ÀÔDÜ˜Q“xñó
ˆð —‘˜/°&À�ÓHˆØ�b˜‘j 6Ñ)Ñ*ˆÜ
×Ñ˜f hÕ/r   c                 óØ   — t         j                  j                  t        d«      «      }t        j                  ||dœ«      }|j                  d||¬«      }t        j                  ||«       y )Nr³   r  úa == br§   )r3   ÚIntervalIndexÚfrom_breaksrr   r4   rC   rD   rE   )r6   r%   r    Úidxr7   rI   s         r   Útest_query_interval_dtypez+TestDataFrameEval.test_query_interval_dtype·  sS   € ä×Ñ×*Ñ*¬5°«8Ó4ˆÜ�\‰\ ¨#Ñ.Ó/ˆØ—‘˜(¨6¸&�ÓAˆÜ
×Ñ˜f bÕ)r   N)"rW   rX   rY   r   r  Úparametrizer�   rŠ   r’   r–   r    r£   r«   r°   rµ   r½   rÁ   rÄ   rÌ   rÕ   rÛ   râ   rå   rê   rò   rô   rù   rþ   r  r  r  r  r  r  r   r   r   r\   r\   m   só   „ à‡[�[×Ñ˜S 1 d )Ó,Ø‡[�[×ÑØò	
óñ4óó -ð4ò80ò1ò0ò	òò	+ò>ò&
4ð ‡[�[×Ñ˜VÒ%OÓPñ4ó Qð4ò5ò@ò 7ò0ò0ò3ò	3ò5ò"Uò1ò-ò.ò1ò.ò
1ò1ò
0ó*r   r\   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                  j                  ||gdd	g¬
«      }t        j                  t        j                  j                  d«      j                  d«      |¬«      }t        j                  |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 )Nr0   ÚredÚgreenr­   ©ÚsizeÚeggsÚhamÚcolorÚfood©Únamesrì   r»   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)   rv   r…   r†   Úchoicer3   Ú
MultiIndexÚfrom_arraysr4   r‡   r�   rn   Úget_level_valuesrx   rC   rD   rE   Úisin©r6   r    r%   rŒ   r˜   rn   r7   Ú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¨a¨&¸À&Ð8IÐ)ÓJˆÜ�\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÀUô
ˆô �i‰iØ�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                  j                  ||g«      }t        j                  t        j                  j                  d«      j                  d«      |¬	«      }t        j                  |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                  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 )%Nr0   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,  r2  s              r   Ú"test_query_with_unnamed_multiindexzCTestDataFrameQueryWithMultiIndex.test_query_with_unnamed_multiindexô  s^  € Ü  Ô(Ü�I‰I×!Ñ! !Ó$×+Ñ+¨U°GÐ,<À2Ð+ÓFˆÜ�I‰I×!Ñ! !Ó$×+Ñ+¨V°U¨OÀ"Ð+ÓEˆÜ—‘×)Ñ)¨1¨a¨&Ó1ˆÜ�\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÀUô
ˆô �i‰i˜Ÿ™×1Ñ1°!Ó4×;Ñ;À5ÔIˆà�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Ô(ô �i‰i˜Ÿ™×1Ñ1°!Ó4×;Ñ;À5ÔIˆØ�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                 óæ  — t        |«       t        j                  j                  d«      j	                  ddgd¬«      }t        j
                  d«      }t        j                  j                  ||g«      }d dg|_	        t        j                  t        j                  j                  d«      j                  d«      |¬«      }|j                  d	||¬
«      }t        j                  |j                  j                  d«      j                   |d¬«      }||dk(     }	t#        j$                  ||	«       |j                  d||¬
«      }t        j                  |j                  j                  d«      j                   |d¬«      }||dk7     }	t#        j$                  ||	«       |j                  d||¬
«      }t        j                  |j                  j                  d«      j                   |¬«      }||dk(     }	t#        j$                  ||	«       |j                  d||¬
«      }t        j                  |j                  j                  d«      j                   |¬«      }||dk7     }	t#        j$                  ||	«       y )Nr0   r!  r"  r­   r#  Úratingrì   r»   zrating == 1r+  rÙ   r/   zrating != 1r9  r   r:  )r)   rv   r…   r†   r-  rÐ   r3   r.  r/  r*  r4   r‡   rC   r�   rn   r0  rx   rD   rE   )
r6   r    r%   rŒ   r˜   rn   r7   r©   r3  r6  s
             r   Ú*test_query_with_partially_named_multiindexzKTestDataFrameQueryWithMultiIndex.test_query_with_partially_named_multiindexN  sý  € Ü  Ô(Ü�I‰I×!Ñ! !Ó$×+Ñ+¨U°GÐ,<À2Ð+ÓFˆÜ�I‰I�b‹MˆÜ—‘×)Ñ)¨1¨a¨&Ó1ˆØ˜XÐ&ˆŒÜ�\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÀUô
ˆð �h‰h�}¨V¸FˆhÓCˆÜ�i‰iØ�H‰H×%Ñ% hÓ/×6Ñ6¸eÈ(ô
ˆð �˜‘‰lˆÜ
×Ñ˜c 3Ô'à�h‰h�}¨V¸FˆhÓCˆÜ�i‰iØ�H‰H×%Ñ% hÓ/×6Ñ6¸eÈ(ô
ˆð �˜‘‰lˆÜ
×Ñ˜c 3Ô'à�h‰hÐ*°6À&ˆhÓIˆÜ�i‰i˜Ÿ™×1Ñ1°!Ó4×;Ñ;À5ÔIˆØ�˜‘ÑˆÜ
×Ñ˜c 3Ô'à�h‰hÐ*°6À&ˆhÓIˆÜ�i‰i˜Ÿ™×1Ñ1°!Ó4×;Ñ;À5ÔIˆØ�˜‘ÑˆÜ
×Ñ˜c 3Õ'r   c                 ó´  — t        j                  t        j                  d«      t         j                  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        |t         j                  «      r|j                  ||   «      rŒ5J ‚t        |t         j                  «      rt!        j"                  |||   «       Œkt%        d
«      ‚ y c c}w )N©r­   r1   r0   r­   Úspamr%  r)  r»   c                 óV   — | j                  |«      }|j                  «       }| |_        |S r   )r0  Ú	to_seriesrn   )ÚmiÚlevelÚlevel_valuesÚss       r   rC  z]TestDataFrameQueryWithMultiIndex.test_query_multiindex_get_index_resolvers.<locals>.to_seriesx  s,   € Ø×.Ñ.¨uÓ5ˆLØ×&Ñ&Ó(ˆAØˆAŒGØˆHr   )rn   ro   rA  r%  Úclevel_0z object must be a Series or Index)r3   r4   rv   Úonesr.  r/  rr   Ú_get_index_resolversro   rC  rn   ÚitemsÚ
isinstancer¼   Úis_r�   rD   rG   ÚAssertionError)	r6   Ú_r7   rç   rC  Ú
col_seriesr€   ÚkÚvs	            r   Ú)test_query_multiindex_get_index_resolverszJTestDataFrameQueryWithMultiIndex.test_query_multiindex_get_index_resolverso  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Ü˜!œRŸX™XÔ&Ø—u‘u˜X a™[Õ)Ð)Ð)Ü˜AœrŸy™yÔ)Ü×&Ñ& q¨(°1©+Õ6ä$Ð%GÓHÐHñ	Iùò' .s   Á
EN)rW   rX   rY   r7  r;  r>  rS  r   r   r   r  r  ¿  s   „ ò2)òhX)òt(óB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                 ó   — t        «        y©Nr!   ©r   r5   s    r   r%   z&TestDataFrameQueryNumExprPandas.engine�  ó   € ä"Ô$Ør   c                  ó   — y©Nr   r   r5   s    r   r    z&TestDataFrameQueryNumExprPandas.parser•  ó   € àr   c                 óÐ  — t        |«       t        j                  t        j                  j                  d«      j                  d«      «      }t        j                  dd¬«      |d<   t        j                  dd¬«      |d<   t        j                  d	d¬«      |d
<   |j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )Nr0   ©rƒ   r1   ú1/1/2012rƒ   ©r  Údates1ú1/1/2013Údates2ú1/1/2014Údates3z"@df.dates1 < 20130101 < @df.dates3r§   Ú20130101)r)   r3   r4   rv   r…   r†   r‡   Ú
date_rangerC   ra  re  rD   rE   ©r6   r%   r    r7   r©   Úexpecs         r   Ú%test_date_query_with_attribute_accesszETestDataFrameQueryNumExprPandas.test_date_query_with_attribute_access™  s»   € Ü  Ô(Ü�\‰\œ"Ÿ)™)×/Ñ/°Ó2×BÑBÀ6ÓJÓKˆÜ—}‘} Z¸Ô;ˆˆ8‰Ü—}‘} Z¸Ô;ˆˆ8‰Ü—}‘} Z¸Ô;ˆˆ8‰Ø�h‰hØ0¸Èð ó 
ˆð �B—I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ñ˜c 5Õ)r   c                 óº  — t        j                  t        j                  j	                  d«      j                  d«      «      }t        j                  dd¬«      |d<   t        j                  dd¬«      |d<   t        j                  d	d¬«      |d
<   |j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )Nr0   r^  r_  rƒ   r`  ra  rb  rc  rd  re  údates1 < 20130101 < dates3r§   rf  ©r3   r4   rv   r…   r†   r‡   rg  rC   ra  re  rD   rE   rh  s         r   Ú#test_date_query_no_attribute_accesszCTestDataFrameQueryNumExprPandas.test_date_query_no_attribute_access¥  s¬   € Ü�\‰\œ"Ÿ)™)×/Ñ/°Ó2×BÑBÀ6ÓJÓKˆÜ—}‘} Z¸Ô;ˆˆ8‰Ü—}‘} Z¸Ô;ˆˆ8‰Ü—}‘} Z¸Ô;ˆˆ8‰Ø�h‰hÐ3¸FÈ6ˆhÓRˆØ�B—I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ñ˜c 5Õ)r   c                 óú  — d}t        j                  t        j                  j	                  d«      j                  |df«      «      }t        j                  d|¬«      |d<   t        j                  d|¬«      |d<   t        j                  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­   r0   r1   r_  r`  ra  rb  rc  rd  re  r  rl  r§   rf  ©r3   r4   rv   r…   r†   r‡   rg  rà   ÚlocrC   ra  re  rD   rE   ©r6   r%   r    r]   r7   r©   ri  s          r   Útest_date_query_with_NaTz8TestDataFrameQueryNumExprPandas.test_date_query_with_NaT®  s!  € ØˆÜ�\‰\œ"Ÿ)™)×/Ñ/°Ó2×BÑBÀAÀqÀ6ÓJÓKˆÜ—}‘} Z¸Ô;ˆˆ8‰Ü—}‘} Z¸Ô;ˆˆ8‰Ü—}‘} Z¸Ô;ˆˆ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        j                  t        j                  j	                  d«      j                  |df«      «      }t        j                  d|¬«      |d<   t        j                  d|¬«      |d<   |j                  d«      }|j                  d	||¬
«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )Nr­   r0   r1   r_  r`  ra  rd  re  úindex < 20130101 < dates3r§   rf  ©r3   r4   rv   r…   r†   r‡   rg  Ú	set_indexrC   rn   re  rD   rE   rr  s          r   Útest_date_index_queryz5TestDataFrameQueryNumExprPandas.test_date_index_queryº  s¯   € ØˆÜ�\‰\œ"Ÿ)™)×/Ñ/°Ó2×BÑBÀAÀqÀ6ÓJÓKˆÜ—}‘} Z¸Ô;ˆˆ8‰Ü—}‘} Z¸Ô;ˆˆ8‰Ø�\‰\˜(Ó#ˆØ�h‰hÐ2¸6È&ˆhÓQˆØ�B—H‘H˜zÑ)¨j¸2¿9¹9Ñ.DÑEÑFˆÜ
×Ñ˜c 5Õ)r   c                 ó  — d}t        j                  t        j                  j	                  d«      j                  |df«      «      j                  dt        i«      }t        j                  d|¬«      |d<   t        j                  d|¬«      |d	<   t         j                  |j                  d
<   |j                  d«      }|j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                   ||«       y )Nr­   r0   r1   r   r_  r`  ra  rd  re  ©r   r   ru  r§   rf  ©r3   r4   rv   r…   r†   r‡   ÚastypeÚobjectrg  rà   rt   rw  rC   rn   re  rD   rE   rr  s          r   Útest_date_index_query_with_NaTz>TestDataFrameQueryNumExprPandas.test_date_index_query_with_NaTÄ  sÔ   € Øˆä�\‰\œ"Ÿ)™)×/Ñ/°Ó2×BÑBÀAÀqÀ6ÓJÓK×RÑRØ”ˆKó
ˆô —}‘} Z¸Ô;ˆˆ8‰Ü—}‘} Z¸Ô;ˆˆ8‰ÜŸ™ˆ�‰�‰Ø�\‰\˜(Ó#ˆØ�h‰hÐ2¸6È&ˆhÓQˆØ�B—H‘H˜zÑ)¨j¸2¿9¹9Ñ.DÑEÑFˆÜ
×Ñ˜c 5Õ)r   c                 ó  — d}i }t        j                  d|¬«      |d<   t        j                  d|¬«      |d<   t        j                  |«      }t         j                  |j                  t
        j                  j                  d«      j                  |«      dkD  df<   |j                  d«      }|j                  d	||¬
«      }||j                  j                  «       dk  d|j                  k  z     }t        j                  ||«       y )Nr­   r_  r`  ra  rd  re  r0   r  rl  r§   rf  )r3   rg  r4   rà   rq  rv   r…   r†   rw  rC   rn   rC  re  rD   rE   )r6   r%   r    r]   Údr7   r©   ri  s           r   Ú)test_date_index_query_with_NaT_duplicateszITestDataFrameQueryNumExprPandas.test_date_index_query_with_NaT_duplicatesÒ  sÔ   € ØˆØˆÜ—m‘m J¸Ô:ˆˆ(‰Ü—m‘m J¸Ô:ˆˆ(‰Ü�\‰\˜!‹_ˆÜEGÇVÁVˆ�‰Œr�y‰y×$Ñ$ QÓ'×.Ñ.¨qÓ1°CÑ7¸ÐAÑBØ�\‰\˜(Ó#ˆØ�h‰hÐ3¸FÈ6ˆhÓRˆØ�B—H‘H×&Ñ&Ó(¨:Ñ5¸*ÀrÇyÁyÑ:PÑQÑRˆÜ
×Ñ˜c 5Õ)r   c                 óÈ  — d}t        j                  t        j                  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)ú<ú>ú<=ú>=rQ   zdates z nondate)r3   r4   rg  rv   rÐ   rC   ÚlenrD   rE   r   rS   Ú	TypeError)r6   r%   r    r]   r7   rI   rU   r|   s           r   Útest_date_query_with_non_datez=TestDataFrameQueryNumExprPandas.test_date_query_with_non_dateÞ  sá   € ØˆÜ�\‰\äŸ™ z¸1À4ÔHÜŸ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   Â4CÃC!	c                 óü   — t        j                  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­   r1   r®   r^   é   )Úir_   Úrúinvalid syntaxrQ   zi - +r§   )r3   r4   rr   r   rS   ÚSyntaxErrorrC   )r6   r%   r    r7   rU   s        r   Útest_query_syntax_errorz7TestDataFrameQueryNumExprPandas.test_query_syntax_errorò  sa   € Ü�\‰\¤ b£	´°a¸³Ä5ÈÈBÃ<ÑPÓQˆØˆÜ�]‰]œ;¨cÔ2ñ 	<Ø�H‰H�W V°FˆHÔ;÷	<÷ 	<ñ 	<ús   ÁA2Á2A;c                 óÐ  — t        |«       t        j                  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)Nr0   )rº   r0   rí   rq   )r/   r0   za > br§   z@a > bú!local variable 'c' is not definedrQ   z@a > b > @czname 'c' is not definedz
@a > b > c)r)   r3   r4   rv   r…   r†   r‡   rs   rC   rŒ   r˜   rD   rE   r   rS   r   )r6   r%   r    r7   rŒ   r˜   r©   r€   s           r   Útest_query_scopez0TestDataFrameQueryNumExprPandas.test_query_scopeø  s8  € Ü  Ô(ä�\‰\Ü�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   Ã:EÄ2EÅEÅE%c                 ó4  — dx}}t        j                  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­   r0   r1   r#  Úabcrq   zname 'sin' is not definedrQ   úsin > 5r§   )r3   r4   rv   r…   r†   Úintegersrs   r   rS   r   rC   )r6   r%   r    r]   r~   r7   s         r   Útest_query_doesnt_pickup_localz>TestDataFrameQueryNumExprPandas.test_query_doesnt_pickup_local  s~   € Øˆ
ˆˆAÜ�\‰\Ü�I‰I×!Ñ! !Ó$×-Ñ-¨a°q¸!°fÐ-Ó=ÄtÈEÃ{ô
ˆô
 �]‰]Ô1Ð9TÔUñ 	>Ø�H‰H�Y v°fˆHÔ=÷	>÷ 	>ñ 	>ús   Á0BÂBc                 óZ  — dx}}t        j                  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­   r0   r1   r#  r™  rq   ÚsinzVariables in expression.+rQ   rš  r§   )r3   r4   rv   r…   r†   r›  rs   rn   rŽ   r   rS   r   rC   )r6   r%   r    r]   r~   r7   rU   s          r   Útest_query_builtinz2TestDataFrameQueryNumExprPandas.test_query_builtin  s�   € Øˆ
ˆˆAÜ�\‰\Ü�I‰I×!Ñ! !Ó$×-Ñ-¨a°q¸!°fÐ-Ó=ÄtÈEÃ{ô
ˆð ˆ�‰ŒØ)ˆÜ�]‰]Ô1¸Ô=ñ 	>Ø�H‰H�Y v°fˆHÔ=÷	>÷ 	>ñ 	>ús   ÂB!Â!B*c                 óÊ  — t        j                  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 )Nr0   r@  rÉ   rq   úa < br§   za + b > b * c)r3   r4   rv   r…   r†   r‡   rD   rE   rC   rŒ   r˜   rÊ   ©r6   r%   r    r7   s       r   Ú
test_queryz*TestDataFrameQueryNumExprPandas.test_query'  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        j                  t        j                  j	                  d«      j                  dd¬«      t        j                  t        d«      d¬«      g d¢¬«      }|j                  d	||¬
«      }||j                  dk  |j                  |j                  k  z     }t        j                  ||«       |j                  d||¬
«      }||j                  |j                  k     }t        j                  ||«       y )Nr0   r­   r@  r#  Úblobr�   rÉ   rm   z(blob < 5) & (a < b)r§   rƒ   zblob < b)r3   r4   rv   r…   r†   r›  r¼   rr   rC   rn   rŒ   r˜   rD   rE   rh  s         r   Útest_query_index_with_namez:TestDataFrameQueryNumExprPandas.test_query_index_with_name4  sË   € Ü�\‰\Ü�I‰I×!Ñ! !Ó$×-Ñ-¨b°wÐ-Ó?Ü—(‘(œ5 ›9¨6Ô2Ú#ô
ˆð
 �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        j                  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 )Nr0   r­   r@  r#  rÉ   rm   z	index < br§   z	index < 5rƒ   )r3   r4   rv   r…   r†   r›  rr   rC   rn   r˜   rD   rE   rh  s         r   Útest_query_index_without_namez=TestDataFrameQueryNumExprPandas.test_query_index_without_nameC  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        j                  t        j                  j                  d«      j                  d«      «      }t        j                  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 )
Nr0   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)   r3   r4   rv   r…   r†   r‡   rC   rD   rE   rF   )r6   r%   r    r7   r¯   r€   rI   s          r   Útest_nested_scopez1TestDataFrameQueryNumExprPandas.test_nested_scopeT  s@  € Ü  Ô(ä�\‰\œ"Ÿ)™)×/Ñ/°Ó2×BÑBÀ6ÓJÓKˆÜ�l‰lœ2Ÿ9™9×0Ñ0°Ó3×CÑCÀFÓKÓLˆØ�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        j                  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)Nr0   r^  úname 'df' is not definedrQ   zdf > 0r§   )
r3   r4   rv   r…   r†   r‡   r   rS   r   rC   r¢  s       r   Ú*test_nested_raises_on_local_self_referencezJTestDataFrameQueryNumExprPandas.test_nested_raises_on_local_self_referencek  sc   € Ü�\‰\œ"Ÿ)™)×/Ñ/°Ó2×BÑBÀ6ÓJÓKˆô �]‰]Ô1Ð9SÔTñ 	=Ø�H‰H�X f°VˆHÔ<÷	=÷ 	=ñ 	=ús   ÁA;Á;Bc                 óº  — t        |«       t        j                  t        j                  j                  d«      j                  d«      t        d«      ¬«      }d}||j                  |k     }|j                  d||¬«      }t        j                  ||«       ||j                  |j                  k     }|j                  d||¬«      }t        j                  ||«       y )	Nr0   )éd   r­   Ú
abcdefghijrq   r/   za < @br§   r¡  )r)   r3   r4   rv   r…   r†   r‡   rs   rŒ   rC   rD   rE   r˜   )r6   r%   r    r7   r˜   rª   rI   s          r   Útest_local_syntaxz1TestDataFrameQueryNumExprPandas.test_local_syntaxr  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        j                  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 )Nr™  r0   r°  rq   z!a < b < c and a not in b not in cr§   )r)   rs   r3   r4   rv   r…   r†   r‡   r‹  rC   rŒ   r˜   rÊ   r1  rD   rE   )r6   r%   r    Úcolsr7   r©   r3  ri  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        j                  t        j                  j                  d«      j                  dd¬«      d¬«      }t        j                  t        j                  j                  d«      j                  dd¬«      d¬«      }t        j                  ||d	œ«      }|j                  |j                  d
z
  j                  |«         }|j                  d||¬«      }t        j                  ||«       t        j                  t        j                  j                  d«      j                  dd¬«      d¬«      }|j                  |d
z
  j                  |«         }|j                  d||¬«      }t        j                  ||«       y )Nr0   r1   é   r#  rŒ   r�   r­   r˜   r  r/   z
b - 1 in ar§   z@b - 1 in a)r)   r3   r�   rv   r…   r†   r›  r4   rq  r˜   r1  rC   rD   rE   )r6   r%   r    rŒ   r˜   r7   r€   rI   s           r   Útest_local_variable_with_inz;TestDataFrameQueryNumExprPandas.test_local_variable_with_in�  s+  € Ü  Ô(Ü�I‰I”b—i‘i×+Ñ+¨AÓ.×7Ñ7¸ÀÐ7ÓCÈ#ÔNˆÜ�I‰I”b—i‘i×+Ñ+¨AÓ.×7Ñ7¸ÀÐ7ÓDÈ3ÔOˆÜ�\‰\ ¨Ñ*Ó+ˆà—6‘6˜2Ÿ4™4 !™8Ÿ/™/¨!Ó,Ñ-ˆØ—‘˜,¨v¸f�ÓEˆÜ
×Ñ˜h¨Ô/ä�I‰I”b—i‘i×+Ñ+¨AÓ.×7Ñ7¸ÀÐ7ÓDÈ3ÔOˆØ—6‘6˜1˜q™5Ÿ,™, q›/Ñ*ˆØ—‘˜-°¸v�ÓFˆÜ
×Ñ˜h¨Õ/r   c                 óÈ   — t        |«       d}t        j                  dg d¢i«      }|j                  d||¬«      }||j                  dk(     }t        j                  ||«       y )Nr/   rŒ   )rŒ   rŒ   r˜   r˜   ú@crº  z	a == "@c"r§   rº  ©r)   r3   r4   rC   rŒ   rD   rE   )r6   r%   r    rÊ   r7   rI   r€   s          r   Útest_at_inside_stringz5TestDataFrameQueryNumExprPandas.test_at_inside_stringž  sY   € Ü  Ô(ØˆÜ�\‰\˜3Ò @ÐAÓBˆØ—‘˜+¨f¸V�ÓDˆØ�b—d‘d˜d‘lÑ#ˆÜ
×Ñ˜f hÕ/r   c                 ó:  — t        |«       t        j                  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)	Nr0   rì   rí   rq   r–  rQ   za == @cr§   )r)   r3   r4   rv   r…   r†   rs   r   rS   r   rC   r¢  s       r   Útest_query_undefined_localz:TestDataFrameQueryNumExprPandas.test_query_undefined_local¦  st   € Ü  Ô(ä�\‰\œ"Ÿ)™)×/Ñ/°Ó2×9Ñ9¸'ÓBÌDÐQUËJÔWˆÜ�]‰]Ü"Ð*Mô
ñ 	>ð �H‰H�Y v°fˆHÔ=÷	>÷ 	>ñ 	>ús   Á3BÂBc                 óz  — d}t         j                  ddd…   }t        j                  |t         j                  j                  d«      j                  |j                  «      dœ«      }d|j                  _	        |j                  d||¬«      }||d   d	kD     }t        j                  ||«       t        j                  |t         j                  j                  d«      j                  |j                  «      dœ«      }|j                  d
||¬«      }|j                  |j                  |j                  d	kD        }t        j                  ||«       t        j                  |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/   rº   ée   r0   )rn   r˜   rn   z	index > 5r§   rƒ   zilevel_0 > 5r  rŒ   za > 5)rv   Úr_r3   r4   r…   r†   r‡   r$  rn   rŽ   rC   rD   rE   rq  rŒ   )r6   r%   r    r]   rŒ   r7   rI   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Ô/ä�\‰\Øœ"Ÿ)™)×/Ñ/°Ó2×BÑBÀ1Ç6Á6ÓJÑKó
ˆð ˆ�‰ŒØ—‘˜'¨&¸�Ó@ˆØ�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        j                  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­   r0   r  r   úa z infr§   )r3   r4   rv   r…   r†   Úinfrq  rŒ   rC   rD   rE   )
r6   r|   Úfr%   r    r]   r7   Úqr€   rI   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        j                  ddd|d¬«      }t        j                  |¬«      }t        j                  |¬«      }|j                  d||¬«      }t	        j
                  ||«       t        j                  |«      }|j                  «       j                  d||¬«      }t	        j
                  ||«       y )	Nz
2019-01-01Ú1Dr­   Útime)Ústartr  r  ÚtzrŽ   r»   z"2018-01-03 00:00:00+00" < timer§   )r3   rg  r4   rC   rD   rE   Úreset_index)	r6   Útz_aware_fixturer%   r    rÏ  Údf_indexr€   r7   rI   s	            r   Útest_check_tz_aware_index_queryz?TestDataFrameQueryNumExprPandas.test_check_tz_aware_index_queryß  s­   € àˆÜ—=‘=Ø T°2¸"À6ô
ˆô —<‘< hÔ/ˆÜ�\‰\ Ô)ˆØ—‘Ø-°fÀVð ó 
ˆô 	×Ñ˜f hÔ/ä—<‘< Ó)ˆØ—‘Ó!×'Ñ'Ø-°fÀVð (ó 
ˆô 	×Ñ˜f hÕ/r   c           	      óz  — d}t        j                  dt        j                  j	                  d«      j                  |«      z  t        j                  j	                  d«      j                  |«      dœ«      }||d   j                  d«      dk(     }|j                  d||¬«      }t        j                  ||«       t        j                  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­   r0   r  rŒ   Úintr   za.astype('int') == 0r§   r  za.notnull())r3   r4   rv   r…   r†   r|  rC   rD   rE   Úwhererˆ   r‡   Únotnull)r6   r%   r    r]   r7   r€   rI   s          r   Útest_method_calls_in_queryz:TestDataFrameQueryNumExprPandas.test_method_calls_in_queryò  s[  € àˆÜ�\‰\àœŸ™×.Ñ.¨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)%rW   rX   rY   r   rZ   r%   r    rj  rn  rs  rx  r~  r�  r�  r”  r—  rœ  rŸ  r£  r¦  r¨  r«  r®  r²  rµ  r¸  r¼  r¾  rÂ  r  r  ÚoperatorÚeqÚnerÊ  rÓ  rØ  r   r   r   rU  rU  �  sè   „ Ø‡^�^ñó ðð ‡^�^ñó ðò
*ò*ò
*ò*ò*ò
*òNò(<òAò4>ò	>ò
ò*ò*ò"0ò.=ò.ò *ò0ò0ò>ò0ðB ‡[�[×Ñ˜W¨¨h¯k©kÐ':¸TÀ8Ç;Á;Ð<OÐ&PÓQñ0ó Rð0ò0ó&0r   rU  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ed	„ «       Zy
)ÚTestDataFrameQueryNumExprPythonc                 ó   — t        «        yrW  rX  r5   s    r   r%   z&TestDataFrameQueryNumExprPython.engine  rY  r   c                  ó   — y©Nr   r   r5   s    r   r    z&TestDataFrameQueryNumExprPython.parser  r\  r   c                 óº  — t        j                  t        j                  j	                  d«      j                  d«      «      }t        j                  dd¬«      |d<   t        j                  dd¬«      |d<   t        j                  d	d¬«      |d
<   |j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )Nr0   r^  r_  rƒ   r`  ra  rb  rc  rd  re  ú)(dates1 < 20130101) & (20130101 < dates3)r§   rf  rm  rh  s         r   rn  zCTestDataFrameQueryNumExprPython.test_date_query_no_attribute_access  s³   € Ü�\‰\œ"Ÿ)™)×/Ñ/°Ó2×BÑBÀ6ÓJÓKˆÜ—}‘} Z¸Ô;ˆˆ8‰Ü—}‘} Z¸Ô;ˆˆ8‰Ü—}‘} Z¸Ô;ˆˆ8‰Ø�h‰hØ7ÀÈvð ó 
ˆð �B—I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ñ˜c 5Õ)r   c                 óú  — d}t        j                  t        j                  j	                  d«      j                  |df«      «      }t        j                  d|¬«      |d<   t        j                  d|¬«      |d<   t        j                  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­   r0   r1   r_  r`  ra  rb  rc  rd  re  r  râ  r§   rf  rp  rr  s          r   rs  z8TestDataFrameQueryNumExprPython.test_date_query_with_NaT#  s(  € ØˆÜ�\‰\œ"Ÿ)™)×/Ñ/°Ó2×BÑBÀAÀqÀ6ÓJÓKˆÜ—}‘} Z¸Ô;ˆˆ8‰Ü—}‘} Z¸Ô;ˆˆ8‰Ü—}‘} Z¸Ô;ˆˆ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        j                  t        j                  j	                  d«      j                  |df«      «      }t        j                  d|¬«      |d<   t        j                  d|¬«      |d<   |j                  d«      }|j                  d	||¬
«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )Nr­   r0   r1   r_  r`  ra  rd  re  ú((index < 20130101) & (20130101 < dates3)r§   rf  rv  rr  s          r   rx  z5TestDataFrameQueryNumExprPython.test_date_index_query1  s¶   € ØˆÜ�\‰\œ"Ÿ)™)×/Ñ/°Ó2×BÑBÀAÀqÀ6ÓJÓKˆÜ—}‘} Z¸Ô;ˆˆ8‰Ü—}‘} Z¸Ô;ˆˆ8‰Ø�\‰\˜(Ó#ˆØ�h‰hØ6¸vÈfð ó 
ˆð �B—H‘H˜zÑ)¨j¸2¿9¹9Ñ.DÑEÑFˆÜ
×Ñ˜c 5Õ)r   c                 ó  — d}t        j                  t        j                  j	                  d«      j                  |df«      «      j                  dt        i«      }t        j                  d|¬«      |d<   t        j                  d|¬«      |d	<   t         j                  |j                  d
<   |j                  d«      }|j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                   ||«       y )Nr­   r0   r1   r   r_  r`  ra  rd  re  rz  rå  r§   rf  r{  rr  s          r   r~  z>TestDataFrameQueryNumExprPython.test_date_index_query_with_NaT=  sÛ   € Øˆä�\‰\œ"Ÿ)™)×/Ñ/°Ó2×BÑBÀAÀqÀ6ÓJÓK×RÑRØ”ˆKó
ˆô —}‘} Z¸Ô;ˆˆ8‰Ü—}‘} Z¸Ô;ˆˆ8‰ÜŸ™ˆ�‰�‰Ø�\‰\˜(Ó#ˆØ�h‰hØ6¸vÈfð ó 
ˆð �B—H‘H˜zÑ)¨j¸2¿9¹9Ñ.DÑEÑFˆÜ
×Ñ˜c 5Õ)r   c                 ó@  — d}t        j                  t        j                  j	                  d«      j                  |df«      «      }t        j                  d|¬«      |d<   t        j                  d|¬«      |d<   t         j                  |j                  t        j                  j	                  d«      j                  |«      d	kD  df<   |j                  d«      }d
}t        j                  t        |¬«      5  |j                  d||¬«       d d d «       y # 1 sw Y   y xY w)Nr­   r0   r1   r_  r`  ra  rd  re  r  ú"'BoolOp' nodes are not implementedrQ   ru  r§   )r3   r4   rv   r…   r†   r‡   rg  rà   rq  rw  r   rS   ÚNotImplementedErrorrC   )r6   r%   r    r]   r7   rU   s         r   r�  zITestDataFrameQueryNumExprPython.test_date_index_query_with_NaT_duplicatesM  sß   € ØˆÜ�\‰\œ"Ÿ)™)×/Ñ/°Ó2×BÑBÀAÀqÀ6ÓJÓKˆÜ—}‘} Z¸Ô;ˆˆ8‰Ü—}‘} Z¸Ô;ˆˆ8‰ÜEGÇVÁVˆ�‰Œr�y‰y×$Ñ$ QÓ'×.Ñ.¨qÓ1°CÑ7¸ÐAÑBØ�\‰\˜(Ó#ˆØ3ˆÜ�]‰]Ô.°cÔ:ñ 	PØ�H‰HÐ0¸ÈˆHÔO÷	P÷ 	Pñ 	Pús   Ã6DÄDc                 óf  — d}t        j                  d||¬«      }|dk(  sJ ‚t        j                  t        j                  j                  d«      j                  d«      «      }t        j                  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§   r0   r^  z5The '@' prefix is only supported by the pandas parserrQ   rª  r­  z(df>0) & (df2>0)r   zdf[(df > 0) & (df2 > 0)]z+df[(df > 0) & (df2 > 0) & (df[df > 0] > 0)])r3   rF   r4   rv   r…   r†   r‡   r   rS   r“  rC   r   rD   rE   )	r6   r%   r    r   rI   r7   r¯   rU   r€   s	            r   r«  z1TestDataFrameQueryNumExprPython.test_nested_scopeX  s�  € àˆÜ—‘˜¨¸Ô?ˆØ˜Š{Ðˆ{ä�\‰\œ"Ÿ)™)×/Ñ/°Ó2×BÑBÀ6ÓJÓKˆÜ�l‰lœ2Ÿ9™9×0Ñ0°Ó3×CÑCÀFÓKÓLˆð 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Ã9F'ÆF$Æ'F0c                 óH  — t        j                  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²   )rÑ   ÚmaxzMVariables in expression \"\(min\) == \(1\)\" overlap with builtins: \('min'\)rQ   zmin == 1zMVariables in expression \"\(max\) == \(1\)\" overlap with builtins: \('max'\)zmax == 1)r3   r4   r   rS   r   rC   )r6   r7   Úregex_to_matchs      r   Ú+test_query_numexpr_with_min_and_max_columnszKTestDataFrameQueryNumExprPython.test_query_numexpr_with_min_and_max_columnss  s’   € ä�\‰\¢)²IÑ>Ó?ˆð0ð 	ô �]‰]Ô1¸ÔHñ 	!Ø�H‰H�ZÔ ÷	!ð0ð 	ô �]‰]Ô1¸ÔHñ 	!Ø�H‰H�ZÔ ÷	!ð 	!÷	!ð 	!ú÷	!ð 	!ús   ºBÁ1BÂBÂB!N)rW   rX   rY   r   rZ   r%   r    rn  rs  rx  r~  r�  r«  Úskip_if_no_numexprrî  r   r   r   rÝ  rÝ    sc   „ Ø‡^�^ñó ðð ‡^�^ñó ðò	*ò*ò
*ò*ò 	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   r5   s    r   r%   z%TestDataFrameQueryPythonPandas.engine†  r\  r   c                  ó   — yr[  r   r5   s    r   r    z%TestDataFrameQueryPythonPandas.parserŠ  r\  r   c                 óF  — dx}}t        j                  t        j                  j	                  d«      j                  ||df¬«      t        d«      ¬«      }d|j                  _        ||j                  dkD     }|j                  d	||¬
«      }t        j                  ||«       y ©Nr­   r0   r1   r#  r™  rq   rž  rƒ   rš  r§   ©r3   r4   rv   r…   r†   r›  rs   rn   rŽ   rC   rD   rE   ©r6   r%   r    r]   r~   r7   r€   rI   s           r   rŸ  z1TestDataFrameQueryPythonPandas.test_query_builtinŽ  óˆ   € Øˆ
ˆˆAÜ�\‰\Ü�I‰I×!Ñ! !Ó$×-Ñ-¨a°q¸!°fÐ-Ó=ÄtÈEÃ{ô
ˆð ˆ�‰ŒØ�b—h‘h ‘lÑ#ˆØ—‘˜)¨F¸6�ÓBˆÜ
×Ñ˜h¨Õ/r   N©rW   rX   rY   r   rZ   r%   r    rŸ  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   r5   s    r   r%   z%TestDataFrameQueryPythonPython.engine›  r\  r   c                  ó   — yrà  r   r5   s    r   r    z%TestDataFrameQueryPythonPython.parserŸ  r\  r   c                 óF  — dx}}t        j                  t        j                  j	                  d«      j                  ||df¬«      t        d«      ¬«      }d|j                  _        ||j                  dkD     }|j                  d	||¬
«      }t        j                  ||«       y rõ  rö  r÷  s           r   rŸ  z1TestDataFrameQueryPythonPython.test_query_builtin£  rø  r   Nrù  r   r   r   rü  rü  š  rú  r   rü  c            
       óh  — e 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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                 ó4  — t        d«      D �cg c]  }|› d�‘Œ	 }}t        j                  d|i«      }|d   j                  t        j                  |d¬«      «      |d<   |j                  d||¬«      }||d   dk\     }t        j                  ||«       y c c}w )	Nr­   ÚAMÚTimeT)ÚorderedzTime >= '5AM'r+  Ú5AM)rr   r3   r4   r|  ÚCategoricalDtyperC   rD   rE   )r6   r    r%   r�  Úbandsr7   rI   r€   s           r   Ú)test_query_ordered_categorical_comparisonzCTestDataFrameQueryStrings.test_query_ordered_categorical_comparison°  s”   € ô $)¨£9Ö-˜a�A�3�b’Ð-ˆÐ-Ü�\‰\˜6 5˜/Ó*ˆØ˜‘Z×&Ñ&¤r×':Ñ':¸5È$Ô'OÓPˆˆ6‰
Ø—‘˜/°&À�ÓHˆØ�b˜‘j EÑ)Ñ*ˆÜ
×Ñ˜f hÕ/ùò .s   ŽBc           	      óv  — t        j                  t        j                  j	                  d«      j                  d«      dg¬«      }t        j                  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¬«      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)Nr0   ©r­   r/   r˜   rq   Ú
aabbccddeeÚstringsrŒ   r   z"a"rp   ©rÃ  rÄ  ú$'(Not)?In' nodes are not implementedT©Ústrictú rQ   )r%   r    Ú
local_dictz"a" == stringsr§   zstrings == "a"zstrings != "a"z"a" != strings)r3   r4   rv   r…   r†   r‡   r�   rs   r  Úzipr   rS   ré  rC   rD   rE   r1  )r6   r    r%   r7   rª   rØ   ÚlstÚlhsÚrhsrÚ  rÛ  ÚopsrU   ÚlhÚop_ÚrhÚexr©   s                     r   Útest_str_query_methodz/TestDataFrameQueryStrings.test_str_query_methodº  s&  € Ü�\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÈÀuô
ˆô Ÿ	™	¤$ |Ó"4Ó5ˆˆ9‰Ø�B—J‘J #Ñ%Ñ&ˆà�XÒØˆCØˆCà�%˜!‘)˜s˜e a™iÑ'ˆCØ‘d˜�d‘)ˆCà‰FˆB�Ø˜˜B�x‘.ˆCØ9ˆCä" 3¨¨S¸Ô>ò ‘��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.È.H8	c                 óÈ  — t        j                  t        j                  j	                  d«      j                  d«      dg¬«      }t        j                  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¬«      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)Nr0   r  r˜   rq   r  r  rŒ   r   z
["a", "b"]rp   r  r  Tr  r  rQ   r§   zstrings == ["a", "b"]z["a", "b"] == stringszstrings != ["a", "b"]z["a", "b"] != strings)r3   r4   rv   r…   r†   r‡   r�   rs   r  r1  r  r   rS   ré  rC   rD   rE   )r6   r    r%   r7   rª   rØ   r  r  r  rÚ  rÛ  r  rU   r  Úops_r  r  r©   s                     r   Útest_str_list_query_methodz4TestDataFrameQueryStrings.test_str_list_query_methodå  sÚ  € Ü�\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÈÀuô
ˆô Ÿ	™	¤$ |Ó"4Ó5ˆˆ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¸$Ô ?ò ?‘��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        j                  dt        d«      i«      }|j                  d||¬«      }t	        j
                  |||d   j                  j                  d«         «       y )NÚcolAÚ
0123456789zcolA.str.contains("0")r§   Ú0)r3   r4   rs   rC   rD   rE   ÚstrÚcontains)r6   r    r%   r7   rI   s        r   Útest_query_str_accessor_methodz8TestDataFrameQueryStrings.test_query_str_accessor_method
  sW   € ä�\‰\˜6¤4¨Ó#5Ð6Ó7ˆà—‘Ð2¸6È&�ÓQˆä
×Ñ˜f b¨¨F©¯©×)@Ñ)@ÀÓ)EÑ&FÕGr   c                 óÞ   — t        j                  dddgi«      }d}|j                  d|› d�||¬«      }||d   j                  j	                  |dd	¬
«         }t        j                  ||«       y )Nr-   zA test casezAnother Testing Casez\btest\bzA.str.contains(r'z', regex=True, case=False)r§   TF)ÚregexÚcase)r3   r4   rC   r%  r&  rD   rE   )r6   r    r%   r7   ÚpatrI   r€   s          r   Ú%test_query_str_contains_word_boundaryz?TestDataFrameQueryStrings.test_query_str_contains_word_boundary  s~   € ô �\‰\˜3 Ð0FÐ GÐHÓIˆØˆà—‘Ø ˜uÐ$>Ð?ØØð ó 
ˆð �b˜‘g—k‘k×*Ñ*¨3°dÀÐ*ÓGÑHˆÜ
×Ñ˜f hÕ/r   c                 ó   — t        j                  dddgi«      }|j                  d||¬«      }||d   j                  j	                  dd«      j                  j                  d«         }t        j                  ||«       y )	NrŒ   ÚexampleÚzzzz$a.str.slice(0, -1).str.contains("e")r§   r   rp   Úe)r3   r4   rC   r%  Úslicer&  rD   rE   )r6   r    r%   r7   rI   r€   s         r   Ú#test_query_str_slice_negative_indexz=TestDataFrameQueryStrings.test_query_str_slice_negative_index!  sx   € ô �\‰\˜3 ¨EÐ 2Ð3Ó4ˆà—‘Ø2¸6È&ð ó 
ˆð �b˜‘g—k‘k×'Ñ'¨¨2Ó.×2Ñ2×;Ñ;¸CÓ@ÑAˆÜ
×Ñ˜f hÕ/r   c           	      ó´  — t        j                  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Úaabbccddeeffr0   rƒ   é   r#  rÈ   ©rŒ   r˜   rÊ   r€  r   za in br+  za in b and c < dr  rQ   rè  )r3   r4   rs   rv   r…   r†   r›  rC   rŒ   r1  r˜   rD   rE   rÊ   r€  r   rS   ré  )r6   r    r%   r7   r©   ri  rU   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   Å*GÆ$GÇGÇGc           	      ó,  — t        j                  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 )Nr4  r5  r0   rƒ   r6  r#  rÈ   r7  r  r+  za != b)r3   r4   rs   rv   r…   r†   r›  rC   rŒ   r˜   rD   rE   )r6   r    r%   r7   r©   r6  s         r   Útest_object_array_eq_nez1TestDataFrameQueryStrings.test_object_array_eq_neH  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        j                  ddd	¬
«      }t        j                  ddd	¬
«      }t        j                  t        j                  dd«      j                  d«      ||j                  |«      dœ«      }||j                  dk(     }	|j                  d||¬«      }
t        j                  |	|
«       y c c}}w )Nr/   r^   )ÚloadÚexitzpage r  r0   z2014-01-01 0:00:01Ú30sr³   )r  r  z2014-02-01 1:00:01rÆ   )r”   ÚeventÚ	timestampz"page 1 load"z'"page 1 load"' in eventr+  )r)   rr   r3   rg  r4   rv   rÐ   ÚrepeatÚappendr?  rC   rD   rE   )r6   r    r%   r]   ÚactÚeventsÚstamps1Ústamps2r7   r€   r©   s              r   Útest_query_with_nested_stringsz8TestDataFrameQueryStrings.test_query_with_nested_stringsY  sî   € Ü  Ô(ä',¨Q°£{÷
Ø"#Ð>Nò
Ø7:ˆe�A�3�a˜�uÒð
Øó
àñˆô —-‘-Ð 4¸5È!ÔLˆÜ—-‘-Ð 4¸5È!ÔLˆÜ�\‰\ä—i‘i  1“o×,Ñ,¨QÓ/ØØ$Ÿ^™^¨GÓ4ñó
ˆð �b—h‘h /Ñ1Ñ2ˆØ�h‰hÐ5¸fÈVˆhÓTˆÜ
×Ñ˜h¨Õ,ùó
s   ›C0c                 óÊ   — t        |«       t        j                  g d¢g d¢dœ«      }|j                  d||¬«      }||j                  dk(     }t        j                  ||«       y )N)rŒ   r˜   útest & testr.   r  za == "test & test"r+  rI  r»  )r6   r    r%   r7   r©   ri  s         r   Ú(test_query_with_nested_special_characterzBTestDataFrameQueryStrings.test_query_with_nested_special_characterl  sV   € Ü  Ô(Ü�\‰\Ò 9Â	ÑJÓKˆØ�h‰hÐ+°FÀ6ˆhÓJˆØ�2—4‘4˜=Ñ(Ñ)ˆÜ
×Ñ˜c 5Õ)r   úop, funcr‡  rˆ  r‰  rŠ  c                 ó¶  — t        j                  t        j                  j	                  d«      j                  t        d«      d«      «      }t        j                  t        j                  |j                  «      «      }t        j                  ||dœ«      }|j                  d|› d�||¬«      }| ||j                  d«         }	t        j                  ||	«       y )	Nr0   Úabcderº   )ÚXr÷   zX z "d"r§   r€  )r3   r�   rv   r…   r†   r-  rs   rÐ   r$  r4   rC   rN  rD   rE   )
r6   r    r%   r|   ÚfuncrŒ   r˜   r7   r©   r€   s
             r   Útest_query_lex_compare_stringsz8TestDataFrameQueryStrings.test_query_lex_compare_stringss  s    € ô �I‰I”b—i‘i×+Ñ+¨AÓ.×5Ñ5´d¸7³mÀRÓHÓIˆÜ�I‰I”b—i‘i §¡Ó'Ó(ˆÜ�\‰\ ¨Ñ*Ó+ˆà�h‰h˜˜B˜4˜t�}¨V¸FˆhÓCˆØ‘d˜2Ÿ4™4 “oÑ&ˆÜ
×Ñ˜c 8Õ,r   c                 ó^  — d}t         j                  j                  d«      j                  ddt	        |«      f¬«      j                  t        «      }t        j                  ||¬«      }|j                  d||¬«      }||j                  |j                  z     }t        j                  ||«       y )N)ÚbidÚbidsizeÚaskÚasksizer0   r/   r#  rq   z	bid & askr§   )rv   r…   r†   r›  r‹  r|  Úboolr3   r4   rC   rR  rT  rD   rE   )r6   r    r%   ro   Údatar7   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ˆÜ�\‰\˜$¨Ô0ˆØ�h‰h�{¨6¸&ˆhÓAˆØ�b—f‘f˜rŸv™v‘oÑ&ˆÜ
×Ñ˜c 8Õ,r   c                 óÎ   — t        |«       t        j                  g d¢g d¢dœ«      }||j                  dk(     }d}|j	                  d||¬«      }t        j                  ||«       y )N)úBUD USrZ  úIBM USr[  )gÍÌÌÌÌl[@g®Gázn[@gš™™™™éf@g33333ëf@)ÚSymbolÚPricerZ  zSymbol == @symbr+  )r)   r3   r4   r\  rC   rD   rE   )r6   r    r%   r7   r0  Úsymbr‘  s          r   Ú!test_query_string_scalar_variablez;TestDataFrameQueryStrings.test_query_string_scalar_variable�  sb   € Ü  Ô(Ü�\‰\âBÚ9ñó
ˆð ˆr�y‰y˜HÑ$Ñ%ˆØˆØ�H‰HÐ&¨v¸fˆHÓEˆÜ
×Ñ˜a Õ#r   Úin_list)NÚasdfÚghjk)ra  Nrb  )ra  rb  N)NNra  )ra  NN)NNNc                 ó   — d}d}t        |«      D ��ci c]  \  }}|dk(  sŒ||“Œ }}}t        j                  d|id¬«      }|j                  j	                  d«      |_        t        j                  d|id¬«      }t        j
                  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   ra  rŒ   Ústring©ÚdtypeÚint64za == 'asdf'r+  za <= 'asdf')Ú	enumerater3   r4   rn   r|  r¼   rs   rf  rC   rD   rE   )r6   r`  r    r%   r�  Úvaluer€   Údf_expectedr7   r4  r5  Úres3s               r   Útest_query_string_null_elementsz9TestDataFrameQueryStrings.test_query_string_null_elementsš  s  € ð ˆØˆÜ-6°wÓ-?×S¡  EÀ5ÈFÃ?�A�u‘HÐSˆÑSä—l‘l C¨ ?¸(ÔCˆØ'×-Ñ-×4Ñ4°WÓ=ˆÔÜ�\‰\˜3 ˜.°Ô9ˆÜ—8‘8œD §¡›N°"·(±(·.±.ÔAˆŒØ�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
   “E
¡E
N)rW   rX   rY   r	  r  r   r'  r,  r2  r8  r:  rG  rJ  r   r  r  rÙ  ÚltÚgtÚleÚgerP  rX  r_  rl  r   r   r   r  r  ¯  sÛ   „ ò0ò)DòV#/òJHò0ò0ò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        j                  t        j                  j	                  d«      j                  d«      t        d«      ¬«      S )Nr0   r@  r™  rq   )r3   r4   rv   r…   r†   r‡   rs   r5   s    r   Úframez TestDataFrameEvalWithFrame.frame¹  s6   € ä�|‰|Ü�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÄtÈEÃ{ô
ð 	
r   c                 óŠ   — |j                  d||¬«      }|j                  |j                  z   }t        j                  ||«       y )Nrî   r§   ©rF   rŒ   r˜   rD   rG   ©r6   rt  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/   rv  rw  s         r   Útest_bool_arith_exprz/TestDataFrameEvalWithFrame.test_bool_arith_exprÄ  sE   € Ø�j‰j˜°¸vˆjÓFˆØ—‘˜Ÿ™ 1™Ñ%¨¯©Ñ/ˆÜ
×Ñ˜s FÕ+r   r|   )r_   rb   re   rh   c                 óÐ   — t        j                  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/   r0   rÊ   r€  r  z3unsupported operand type\(s\) for .+: '.+' and '.+'rQ   rÆ  z br§   )r3   r4   r   rS   rŒ  rF   )r6   r    r%   r|   r7   rU   s         r   Ú%test_invalid_type_for_operator_raisesz@TestDataFrameEvalWithFrame.test_invalid_type_for_operator_raisesÉ  s_   € ä�\‰\  A ¨c°3¨ZÑ8Ó9ˆØDˆä�]‰]œ9¨CÔ0ñ 	?Ø�G‰G�b˜˜˜B�K¨°vˆGÔ>÷	?÷ 	?ñ 	?ús   ºAÁA%N)rW   rX   rY   r   rZ   rt  rx  rz  r  r  r|  r   r   r   rr  rr  ¸  sH   „ Ø‡^�^ñ
ó ð
ò
,ò
,ð
 ‡[�[×Ñ˜TÒ#7Ó8ñ?ó 9ñ?r   rr  c                   óR  — 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„ «       Z3d2„ Z4ejH                  jK                  d3d4d5g«      ejH                  jK                  d/g d0¢«      d6„ «       «       Z5d7„ Z6y8)9Ú!TestDataFrameQueryBacktickQuotingc                 ó  — t        j                  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)r1   r0   r/   úC Cr²   úC  C)rÆ   r^   r1   ÚC_C)rÇ   rÈ   r­   úD_D D)é   r/   rÀ  úE.E)r³   r1   rƒ   úF-F)rÇ   r/   r­   Ú1e1)r0   r^   rÇ   Údef)r­   r…  r0   úA (x))r^   r/   r1   zB(x))r/   r/   rƒ   zB (x))r0   rÆ   r^   õ     &^ :!â‚¬$?(} >    <++*''  )r0   rƒ   r³   r¢   )r­   r…  r/   ú A)r^   rÆ   rÈ   ú  ©r/   r0   r/   )r³   r1   r/   )rÈ   r/   rÇ   )rÇ   rÆ   r³   )r0   r^   rƒ   )rƒ   rÆ   rÈ   )úit'súthat'sõ   â˜ºõ
   xy ï¼ˆzï¼‰õ   xy ï¼ˆz\uff09úfoo#barr/   r2   r5   s    r   r7   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€  ©rC   rD   rE   ©r6   r7   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€  r^   r�  r–  r—  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€  ©rF   rD   rG   r—  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�  rœ  r—  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-   rœ  r—  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�  rœ  r—  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„  rœ  r—  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ƒ  rœ  r—  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-   rœ  r—  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ˆ  rœ  r—  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‰  rœ  r—  s       r   Útest_keywordz.TestDataFrameQueryBacktickQuoting.test_keyword)  rž  r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nz`A` > 2r-   r0   r–  r—  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Š  r0   r–  r—  s       r   Útest_parenthesisz2TestDataFrameQueryBacktickQuoting.test_parenthesis3  s2   € Ø�h‰h�}Ó%ˆØ�B�w‘K !‘OÑ$ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nz`` > 5r¢   rƒ   r–  r—  s       r   Útest_empty_stringz3TestDataFrameQueryBacktickQuoting.test_empty_string8  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ƒ   r–  r—  s       r   Útest_multiple_spacesz6TestDataFrameQueryBacktickQuoting.test_multiple_spaces=  s2   € Ø�h‰h�|Ó$ˆØ�B�v‘J ‘NÑ#ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )Nz` A` + `  `rŒ  r�  rœ  r—  s       r   Útest_start_with_spacesz8TestDataFrameQueryBacktickQuoting.test_start_with_spacesB  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Æ   r–  r—  s       r   Ú	test_intsz+TestDataFrameQueryBacktickQuoting.test_intsG  s1   € Ø�h‰h�zÓ"ˆØ�B�q‘E˜Q‘J‘ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nu"   `  &^ :!â‚¬$?(} >    <++*''  ` > 4r‹  r^   r–  r—  s       r   Útest_lots_of_operators_stringz?TestDataFrameQueryBacktickQuoting.test_lots_of_operators_stringL  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'rQ   z	@pd.thing)r   rS   ÚAttributeErrorrF   )r6   r7   Úmessages      r   Útest_missing_attributez8TestDataFrameQueryBacktickQuoting.test_missing_attributeQ  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�  r–  r—  s       r   Ú
test_quotez,TestDataFrameQueryBacktickQuoting.test_quoteV  s8   € Ø�h‰hÐ*Ó+ˆØ�B�v‘J  H¡Ñ-Ñ.ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nu	   `â˜º` > 4r‘  r^   r–  r—  s       r   Ú#test_character_outside_range_smileyzETestDataFrameQueryBacktickQuoting.test_character_outside_range_smiley[  s2   € Ø�h‰h�{Ó#ˆØ�B�u‘I ‘MÑ"ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dk(     }t        j                  ||«       y )Nu   `xy ï¼ˆzï¼‰` == 2r’  r0   r–  r—  s       r   Ú*test_character_outside_range_2_byte_parenszLTestDataFrameQueryBacktickQuoting.test_character_outside_range_2_byte_parens`  s5   € à�h‰hÐ*Ó+ˆØ�B�|Ñ$¨Ñ)Ñ*ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dk(     }t        j                  ||«       y )Nu   `xy ï¼ˆz\uff09` == 2r“  r0   r–  r—  s       r   Ú1test_character_outside_range_and_actual_backslashzSTestDataFrameQueryBacktickQuoting.test_character_outside_range_and_actual_backslashf  s6   € à�h‰hÐ.Ó/ˆØ�BÐ*Ñ+¨qÑ0Ñ1ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nz`foo#bar` > 4r”  r^   r–  r—  s       r   Útest_hashtagz.TestDataFrameQueryBacktickQuoting.test_hashtagl  s3   € Ø�h‰h�Ó'ˆØ�B�y‘M AÑ%Ñ&ˆÜ
×Ñ˜c 6Õ*r   c                 ó˜   — t        j                  ddg¬«      }|j                  d«      }||d   dk     }t        j                  ||«       y )Nr.   úa#rq   z`a#` < 2r0   ©r3   r4   rC   rD   rE   r‘   s       r   Ú1test_expr_with_column_name_with_hashtag_characterzSTestDataFrameQueryBacktickQuoting.test_expr_with_column_name_with_hashtag_characterq  sD   € ä�\‰\˜)¨d¨VÔ4ˆØ—‘˜*Ó%ˆØ�b˜‘h ‘lÑ#ˆÜ
×Ñ˜f hÕ/r   c                 ó˜   — t        j                  ddg¬«      }|j                  d«      }||d   dk     }t        j                  ||«       y )Nr.   rÌ  rq   z`a#` < 2  # This is a commentr0   rÍ  r‘   s       r   Útest_expr_with_commentz8TestDataFrameQueryBacktickQuoting.test_expr_with_commentx  sE   € ä�\‰\˜)¨d¨VÔ4ˆØ—‘Ð9Ó:ˆØ�b˜‘h ‘lÑ#ˆÜ
×Ñ˜f hÕ/r   c                 ó˜   — t        j                  ddg¬«      }|j                  d«      }||d   dk     }t        j                  ||«       y )Nr.   za`#brq   z`a``#b` < 2r0   rÍ  r‘   s       r   Ú1test_expr_with_column_name_with_backtick_and_hashzSTestDataFrameQueryBacktickQuoting.test_expr_with_column_name_with_backtick_and_hash  sD   € ä�\‰\˜)¨f¨XÔ6ˆØ—‘˜-Ó(ˆØ�b˜‘j 1‘nÑ%ˆÜ
×Ñ˜f hÕ/r   c                 ó˜   — t        j                  dddœ«      }|j                  d«      }||d   dk     }t        j                  ||«       y )Nr.   r²   )úa`brí   z
`a``b` < 2rÔ  r0   rÍ  r‘   s       r   Ú(test_expr_with_column_name_with_backtickzJTestDataFrameQueryBacktickQuoting.test_expr_with_column_name_with_backtick†  sE   € ä�\‰\ )°9Ñ=Ó>ˆØ—‘˜,Ó'ˆà�b˜‘i !‘mÑ$ˆÜ
×Ñ˜f hÕ/r   c                 ó˜   — t        j                  ddg¬«      }|j                  d«      }|d|d   k     }t        j                  ||«       y )N©ú`z`````z
``````````ú
#backticksrq   z'```' < `#backticks`z```rÍ  r‘   s       r   Ú$test_expr_with_string_with_backtickszFTestDataFrameQueryBacktickQuoting.test_expr_with_string_with_backticksŽ  sH   € ä�\‰\Ð6ÀÀÔOˆØ—‘Ð0Ó1ˆØ�e˜b Ñ.Ñ.Ñ/ˆÜ
×Ñ˜f hÕ/r   c                 ó˜   — t        j                  ddg¬«      }|j                  d«      }|d|d   k     }t        j                  ||«       y )Nr×  rÙ  rq   z'`#backticks`' < `#backticks`z`#backticks`rÍ  r‘   s       r   ÚCtest_expr_with_string_with_backticked_substring_same_as_column_namezeTestDataFrameQueryBacktickQuoting.test_expr_with_string_with_backticked_substring_same_as_column_name•  sH   € ä�\‰\Ð6ÀÀÔOˆØ—‘Ð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        j                  |d|di|d|di|d|di|d|dig«      }|j                  |«      }|||   ||   k     }t        j                  ||«       y )	Nr/   r0   r1   r^   rp   éþÿÿÿrÎ   éüÿÿÿrÍ  )r6   Úcol1Úcol2Úexprr7   rI   r€   s          r   Ú3test_expr_with_column_names_with_special_characterszUTestDataFrameQueryBacktickQuoting.test_expr_with_column_names_with_special_charactersœ  s}   € ô �\‰\à�q˜$ Ð"Ø�q˜$ Ð"Ø�r˜4 Ð$Ø�r˜4 Ð$ð	ó
ˆð —‘˜$“ˆØ�b˜‘h  D¡Ñ)Ñ*ˆÜ
×Ñ˜f hÕ/r   c                 ó˜   — t        j                  ddg¬«      }|j                  d«      }|d|d   k     }t        j                  ||«       y )N©ÚaaaÚvvvr/  Úcolumn_namerq   z'value' < column_nameri  rÍ  r‘   s       r   Útest_expr_with_no_backticksz=TestDataFrameQueryBacktickQuoting.test_expr_with_no_backticks³  sH   € ä�\‰\Ð/¸-¸ÔIˆØ—‘Ð1Ó2ˆØ�g  =Ñ 1Ñ1Ñ2ˆÜ
×Ñ˜f hÕ/r   c                 óÂ   — t        j                  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-namerq   r’  rQ   z5 < `column-name©r3   r4   r   rS   r“  r   rC   r:   s     r   Ú2test_expr_with_no_quotes_and_backtick_is_unmatchedzTTestDataFrameQueryBacktickQuoting.test_expr_with_no_quotes_and_backtick_is_unmatchedº  sJ   € ä�\‰\˜*¨}¨oÔ>ˆÜ�]‰]œK¬Ð4Ð<LÔMñ 	)Ø�H‰HÐ'Ô(÷	)÷ 	)ñ 	)úó   ºAÁAc                 ó˜   — t        j                  ddg¬«      }|j                  d«      }|d|d   k     }t        j                  ||«       y )Nrë  rì  rq   z5 < `column-name`rƒ   rÍ  r‘   s       r   Ú0test_expr_with_no_quotes_and_backtick_is_matchedzRTestDataFrameQueryBacktickQuoting.test_expr_with_no_quotes_and_backtick_is_matchedÀ  sG   € ä�\‰\˜*¨}¨oÔ>ˆØ—‘Ð-Ó.ˆØ�a˜"˜]Ñ+Ñ+Ñ,ˆÜ
×Ñ˜f hÕ/r   c                 óÂ   — t        j                  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'srq   úunterminated string literalrQ   z	5 < `It'srí  r:   s     r   ÚEtest_expr_with_backtick_opened_before_quote_and_backtick_is_unmatchedzgTestDataFrameQueryBacktickQuoting.test_expr_with_backtick_opened_before_quote_and_backtick_is_unmatchedÇ  sN   € ä�\‰\˜*¨v¨hÔ7ˆÜ�]‰]Üœ*Ð%Ð-Jô
ñ 	"ð �H‰H�[Ô!÷	"÷ 	"ñ 	"úrï  c                 ó˜   — t        j                  ddg¬«      }|j                  d«      }|d|d   k     }t        j                  ||«       y )Nrë  ró  rq   z
5 < `It's`rƒ   rÍ  r‘   s       r   ÚCtest_expr_with_backtick_opened_before_quote_and_backtick_is_matchedzeTestDataFrameQueryBacktickQuoting.test_expr_with_backtick_opened_before_quote_and_backtick_is_matchedÏ  sD   € ä�\‰\˜*¨v¨hÔ7ˆØ—‘˜,Ó'ˆØ�a˜"˜V™*‘nÑ%ˆÜ
×Ñ˜f hÕ/r   c                 óÂ   — t        j                  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ì  rq   rô  rQ   z+`column-name` < 'It`s that\'s "quote" #hashrí  r:   s     r   ÚBtest_expr_with_quote_opened_before_backtick_and_quote_is_unmatchedzdTestDataFrameQueryBacktickQuoting.test_expr_with_quote_opened_before_backtick_and_quote_is_unmatchedÖ  sT   € ä�\‰\Ð/¸-¸ÔIˆÜ�]‰]Üœ*Ð%Ð-Jô
ñ 	Gð �H‰HÐEÔF÷	G÷ 	Gñ 	Gúrï  c                 ó˜   — t        j                  ddg¬«      }|j                  d«      }||d   dk     }t        j                  ||«       y )Nrå  rì  rq   z,`column-name` < 'It`s that\'s "quote" #hash'úIt`s that's "quote" #hashrÍ  r‘   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Þ  sI   € ä�\‰\Ð/¸-¸ÔIˆØ—‘ÐKÓLˆØ�b˜Ñ'Ð*FÑFÑGˆÜ
×Ñ˜f hÕ/r   c                 ó˜   — t        j                  ddg¬«      }|j                  d«      }|d|d   k     }t        j                  ||«       y )Nrå  rì  rq   z,'It`s that\'s "quote" #hash' < `column-name`rû  rÍ  r‘   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å  sI   € ä�\‰\Ð/¸-¸ÔIˆØ—‘Ð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r=   r   )rO  s    r   rO  zNTestDataFrameQueryBacktickQuoting.test_call_non_named_expression.<locals>.funcô  s   € Ør   z@func()z"Only named functions are supportedrQ   z@funcs[0]()Nz@funcs[0].__call__())rF   r   rS   rŒ  )r6   r7   rO  Ú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                 óJ  — t        j                  ddgddggddg|¬«      }t        rt        nd }d}t	        j
                  ||¬	«      5  |j                  d
«      }d d d «       t        j                  g d¢g d¢gg d¢|¬«      }t	        j                  |«       y # 1 sw Y   Œ@xY w)Nr/   r0   r1   r^   rŒ   r˜   ©ro   rf  úƒEngine has switched to 'python' because numexpr does not support extension array dtypes. Please set your engine to python manually.rQ   z	c = b - arŽ  )r1   r^   r/   rÉ   ©r3   r4   r   ÚRuntimeWarningrD   rá   rF   rE   )r6   Úany_numeric_ea_and_arrow_dtyper7   ÚwarningrU   rI   r€   s          r   Útest_ea_dtypesz0TestDataFrameQueryBacktickQuoting.test_ea_dtypes  s¡   € ä�\‰\Ø�ˆV�a˜�VÐ s¨C jÐ8Vô
ˆõ %6•.¸4ˆð"ð 	ô
 ×'Ñ'¨°sÔ;ñ 	*Ø—W‘W˜[Ó)ˆF÷	*ä—<‘<Úš	Ð"Ú#Ø0ô
ˆô
 	×Ñ˜f hÕ/÷	*ð 	*úó   ÁBÂB"c                 óJ  — t        j                  ddgddggddgd¬«      }t        rt        nd }d	}t	        j
                  ||¬
«      5  |j                  d«      }d d d «       t        j                  g d¢g d¢gg d¢d¬«      }t	        j                  |«       y # 1 sw Y   Œ@xY w)Nr/   r0   r1   r^   rŒ   r˜   ÚFloat64r  r  rQ   z	c = b - 1rŽ  )r1   r^   r1   rÉ   r  )r6   r7   r	  rU   rI   r€   s         r   Útest_ea_dtypes_and_scalarz;TestDataFrameQueryBacktickQuoting.test_ea_dtypes_and_scalar  s™   € ä�\‰\˜A˜q˜6 A q 6Ð*°S¸#°JÀiÔPˆÝ$5•.¸4ˆð"ð 	ô
 ×'Ñ'¨°sÔ;ñ 	*Ø—W‘W˜[Ó)ˆF÷	*ä—<‘<Úš	Ð"ªOÀ9ô
ˆô 	×Ñ˜f hÕ/÷	*ð 	*úr  c           	      óh  — t        j                  ddgddggddg|¬«      }|j                  d«      }t        j                  t        j                  ddg|¬	«      t        j                  ddg|¬	«      t        j                  ddg|d
   j                  ¬	«      dœ«      }t        j                  ||«       y )Nr/   r0   r1   r^   rŒ   r˜   r  z	c = 2 - 1re  rÊ   rÉ   )r3   r4   rF   r�   rf  rD   rE   )r6   r  r7   rI   r€   s        r   Ú#test_ea_dtypes_and_scalar_operationzETestDataFrameQueryBacktickQuoting.test_ea_dtypes_and_scalar_operation%  s    € ä�\‰\Ø�ˆV�a˜�VÐ s¨C jÐ8Vô
ˆð —‘˜Ó%ˆÜ—<‘<ä—Y‘Y  1˜vÐ-KÔLÜ—Y‘Y  1˜vÐ-KÔLÜ—Y‘Y  1˜v¨V°C©[×->Ñ->Ô?ñó
ˆô 	×Ñ˜f hÕ/r   rf  )rg  ÚInt64úint64[pyarrow]c                 óŽ  — |dk(  rt        j                  d«       t        j                  dddgi|¬«      }dh}|dk(  rt        rt
        nd }d}t        j                  ||¬	«      5  |j                  d
«      }d d d «       t        j                  ddgit        dd«      |¬«      }t        j                  |«       y # 1 sw Y   ŒExY w)Nr  ÚpyarrowrŒ   r/   r0   re  r  r  rQ   z	a in @ref)rn   rf  )r   Úimportorskipr3   r4   r   r  rD   rá   rC   rr   rE   )r6   rf  r7   Úrefr	  rU   rI   r€   s           r   Útest_query_ea_dtypesz6TestDataFrameQueryBacktickQuoting.test_query_ea_dtypes4  s·   € àÐ$Ò$Ü×Ñ 	Ô*ä�\‰\˜3  A ˜-¨uÔ5ˆØˆcˆØ$)¨WÒ$4Õ9J•.ÐPTˆð"ð 	ô
 ×'Ñ'¨°sÔ;ñ 	+Ø—X‘X˜kÓ*ˆF÷	+ä—<‘<  q c 
´%¸¸1³+ÀUÔKˆÜ
×Ñ˜f hÕ/÷	+ð 	+ús   Á%B;Â;Cc                 ó  — t        j                  dg d¢i|¬«      }t        rt        nd }d}t	        j
                  ||¬«      5  |j                  d«      }d d d «       t	        j                  |j                  d d «       y # 1 sw Y   Œ-xY w)NÚcol_test)r^   Nr³   re  r  rQ   zcol_test != 6r/   )	r3   r4   r   r  rD   rá   rC   rE   rt   )r6   r  r7   r	  rU   rI   s         r   Ú%test_query_ea_dtype_scalar_comparisonzGTestDataFrameQueryBacktickQuoting.test_query_ea_dtype_scalar_comparisonF  s�   € ä�\‰\ØšÐ&Ð.Lô
ˆõ %6•.¸4ˆð"ð 	ô
 ×'Ñ'¨°sÔ;ñ 	/Ø—X‘X˜oÓ.ˆF÷	/ô 	×Ñ˜f b§g¡g¨b¨q kÕ2÷	/ð 	/ú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        j                  t        j                  g d¢d¬«      t        j                  g d¢|¬«      d	œ«      }d
}t        j                  ||¬«      5  |j                  d|¬«      }d d d «       t        j                  t        j                  ddgdt        ddd«      ¬«      t        j                  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  re  )r/   r0   r0   r™   r  rQ   zA == BrL   r/   r0   r   r^   )rf  rn   )r  r   r   r   r  r3   r4   r�   rD   rá   rC   rr   rE   )r6   rf  r%   r	  r7   rU   rI   r€   s           r   Ú!test_query_ea_equality_comparisonzCTestDataFrameQueryBacktickQuoting.test_query_ea_equality_comparisonV  s  € ð %+¨iÒ$7•.¸TˆØ�YÒÕ'8Ü�K‰KÐ/Ô0ØÐ$Ò$Ü×Ñ 	Ô*Ü�\‰\ä—Y‘Yšy°Ô8Ü—Y‘Yšy°Ô6ñó
ˆð"ð 	ô
 ×'Ñ'¨°sÔ;ñ 	7Ø—X‘X˜h¨v�XÓ6ˆF÷	7ä—<‘<ä—Y‘Y  1˜v¨W¼EÀ!ÀQÈ»NÔKÜ—Y‘Y  1˜v¨U¼%ÀÀ1Àa».ÔIñó
ˆô 	×Ñ˜f hÕ/÷	7ð 	7ús   Â'D8Ä8Ec                 ó"  — t        j                  dd¬«      }t        j                  dt        j                  d d gd¬«      it        ¬«      }|j                  d«      }t        j                  dg it        ¬«      }t        j                  ||«       y )	Nz
2011-01-01ÚUTC)rÏ  rŒ   T)Úutcre  za > @now)r3   r¶   r4   Úto_datetimer}  rC   rD   rE   )r6   Únowr7   rI   r€   s        r   Útest_all_nat_in_objectz8TestDataFrameQueryBacktickQuoting.test_all_nat_in_objectt  sh   € ä�l‰l˜<¨EÔ2ˆÜ�\‰\˜3¤§¡°°d¨|ÀÔ FÐGÌvÔVˆØ—‘˜*Ó%ˆÜ—<‘<  b 	´Ô8ˆÜ
×Ñ˜f hÕ/r   N)7rW   rX   rY   r   rZ   r7   r˜  rš  r�  r   r¢  r¤  r¦  r¨  rª  r¬  r®  r°  r²  r´  r¶  r¸  rº  r¼  rÀ  rÂ  rÄ  rÆ  rÈ  rÊ  rÎ  rÐ  rÒ  rÕ  rÚ  rÜ  r  r  rã  ré  rî  rñ  rõ  r÷  rù  rü  rþ  r  r
  r  r  r  r  r  r"  r   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ò"3ð  ‡[�[×Ñ˜X¨°)Ð'<Ó=Ø‡[�[×Ñ˜WÒ&JÓKñ0ó Ló >ð0ó80r   r~  c                   óž   — e Zd Z ej                  d¬«      d„ «       Zd„ Zd„ Zd„ Zd„ Z	 e
j                  d«      d	„ «       Zd
„ Zd„ Zd„ Zd„ Zy)Ú"TestDataFrameQueryInWithColumnRefsT)Úautousec                 ó@   — |dk7  rt        j                  d|› �«       y y r'   r(   )r6   r    s     r   r)   z;TestDataFrameQueryInWithColumnRefs.skip_if_no_pandas_parser€  s#   € à�XÒÜ�K‰KÐ6°v°hÐ?Õ@ð r   c                 óÊ   — t        j                  g d¢g d¢g d¢dœ«      }|j                  d||¬«      }||d   |d   k(  |d   |d	   k(  z     }t        j                  ||«       y )
Nr.   ©r/   r^   rÈ   ©r/   rÇ   é   rÉ   úb in (a, c)r§   r˜   rŒ   rÊ   rÍ  rÔ   s         r   Ú%test_in_column_refs_numeric_first_rowzHTestDataFrameQueryInWithColumnRefs.test_in_column_refs_numeric_first_row…  sd   € Ü�\‰\¢	²	Â
ÑKÓLˆØ—‘˜-°¸v�ÓFˆØ�r˜#‘w " S¡'Ñ)¨b°©g¸¸C¹Ñ.@ÑAÑBˆÜ
×Ñ˜f hÕ/r   c                 óš   — t        j                  g d¢g d¢g d¢dœ«      }|j                  d||¬«      }|}t        j                  ||«       y )Nr.   ©r­   rº   é   rÉ   r+  r§   rÍ  rÔ   s         r   Ú$test_in_column_refs_numeric_all_rowszGTestDataFrameQueryInWithColumnRefs.test_in_column_refs_numeric_all_rows‹  s@   € Ü�\‰\¢	²	ÂÑMÓNˆØ—‘˜-°¸v�ÓFˆØˆÜ
×Ñ˜f hÕ/r   c                 ó´   — t        j                  g d¢g d¢g d¢dœ«      }|j                  d||¬«      }|j                  d d }t	        j
                  ||«       y )Nr.   )rƒ   r³   rÆ   r.  rÉ   r+  r§   r   r•   rÔ   s         r   Ú$test_in_column_refs_numeric_no_matchzGTestDataFrameQueryInWithColumnRefs.test_in_column_refs_numeric_no_match‘  sJ   € Ü�\‰\¢	²	ÂÑMÓNˆØ—‘˜-°¸v�ÓFˆØ—7‘7˜2˜A�;ˆÜ
×Ñ˜f hÕ/r   c                 óÊ   — t        j                  g d¢g d¢g d¢dœ«      }|j                  d||¬«      }||d   |d   k(  |d   |d   k(  z     }t        j                  ||«       y )	NrÏ   rÉ   ©r˜   r˜   rÊ   r+  r§   r˜   rŒ   rÊ   rÍ  rÔ   s         r   Útest_in_column_refs_stringz=TestDataFrameQueryInWithColumnRefs.test_in_column_refs_string—  si   € Ü�\‰\Ú!ªºoÑNó
ˆð —‘˜-°¸v�ÓFˆØ�r˜#‘w " S¡'Ñ)¨b°©g¸¸C¹Ñ.@ÑAÑBˆÜ
×Ñ˜f hÕ/r   r  c                 óD  — t        j                  g d¢g d¢g d¢dœd¬«      }|dk(  rt        nd }d}t        j                  ||¬«      5  |j                  d	||¬
«      }d d d «       ||d   |d   k(  |d   |d   k(  z     }t        j                  |«       y # 1 sw Y   Œ:xY w)NrÏ   rÉ   r4  zstring[pyarrow]re  r!   r  rQ   r+  r§   r˜   rŒ   rÊ   )r3   r4   r  rD   rá   rC   rE   )r6   r%   r    r7   r	  rU   rI   r€   s           r   Ú"test_in_column_refs_string_pyarrowzETestDataFrameQueryInWithColumnRefs.test_in_column_refs_string_pyarrowŸ  s±   € ä�\‰\Ú!ªºoÑNØ#ô
ˆð
 %+¨iÒ$7•.¸Tˆð"ð 	ô
 ×'Ñ'¨°sÔ;ñ 	KØ—X‘X˜m°FÀ6�XÓJˆF÷	Kð �r˜#‘w " S¡'Ñ)¨b°©g¸¸C¹Ñ.@ÑAÑBˆÜ
×Ñ˜f hÕ/÷		Kð 	Kús   ÁBÂBc                 óÊ   — t        j                  g d¢g d¢g d¢dœ«      }|j                  d||¬«      }||d   |d   k7  |d   |d	   k7  z     }t        j                  ||«       y )
Nr.   r(  r)  rÉ   úb not in (a, c)r§   r˜   rŒ   rÊ   rÍ  rÔ   s         r   Útest_not_in_column_refs_numericzBTestDataFrameQueryInWithColumnRefs.test_not_in_column_refs_numeric²  se   € Ü�\‰\¢	²	Â
ÑKÓLˆØ—‘Ð+°FÀ6�ÓJˆØ�r˜#‘w " S¡'Ñ)¨b°©g¸¸C¹Ñ.@ÑAÑBˆÜ
×Ñ˜f hÕ/r   c                 óÊ   — t        j                  g d¢g d¢g d¢dœ«      }|j                  d||¬«      }||d   |d   k7  |d   |d	   k7  z     }t        j                  ||«       y )
N)r   ÚyÚz)rŒ   r<  r=  r4  rÉ   r9  r§   r˜   rŒ   rÊ   rÍ  rÔ   s         r   Útest_not_in_column_refs_stringzATestDataFrameQueryInWithColumnRefs.test_not_in_column_refs_string¸  sj   € Ü�\‰\Ú!ªºoÑNó
ˆð —‘Ð+°FÀ6�ÓJˆØ�r˜#‘w " S¡'Ñ)¨b°©g¸¸C¹Ñ.@ÑAÑBˆÜ
×Ñ˜f hÕ/r   c                 ó¾   — t        j                  g d¢g d¢dœ«      }|j                  d||¬«      }||d   |d   k(  |d   dk(  z     }t        j                  ||«       y )	Nr.   )r/   éc   rƒ   r  zb in (a, 99)r§   r˜   rŒ   r@  rÍ  rÔ   s         r   Útest_in_column_ref_and_literalzATestDataFrameQueryInWithColumnRefs.test_in_column_ref_and_literalÀ  s]   € Ü�\‰\¢	²
Ñ;Ó<ˆØ—‘˜.°À�ÓGˆØ�r˜#‘w " S¡'Ñ)¨b°©g¸©mÑ<Ñ=ˆÜ
×Ñ˜f hÕ/r   c                 ó¼   — t        j                  dg d¢i«      }|j                  d||¬«      }||d   j                  ddg«         }t	        j
                  ||«       y )NrŒ   )r/   r0   r1   r^   za in (2, 3)r§   r0   r1   )r3   r4   rC   r1  rD   rE   rÔ   s         r   Útest_in_pure_literalsz8TestDataFrameQueryInWithColumnRefs.test_in_pure_literalsÆ  sT   € Ü�\‰\˜3¢Ð-Ó.ˆØ—‘˜-°¸v�ÓFˆØ�b˜‘g—l‘l A q 6Ó*Ñ+ˆÜ
×Ñ˜f hÕ/r   N)rW   rX   rY   r   rZ   r)   r,  r0  r2  r5  ÚtdÚ
skip_if_nor7  r:  r>  rA  rC  r   r   r   r$  r$  }  sj   „ ð €V‡^�^˜DÔ!ñAó "ðAò0ò0ò0ò0ð €R‡]�]�9Óñ0ó ð0ò$0ò0ò0ó0r   r$  zdtype, valueszdatetime64[ns]z
2020-01-01z
2020-01-02ztimedelta64[ns]ú5 daysú3 daysz	period[D]z]GH#23420, GH#35595 _rewrite_membership_op turns == into isin, which does not parse the stringc                 óð   — t        |«       t        j                  dt        j                  || ¬«      i«      }|j	                  d|d   › d�||¬«      }t        j                  ||j                  dg   «       y )NrŒ   re  za == "r   ú"r§   )r)   r3   r4   r
  rC   rD   rE   rt   )rf  rx   r%   r    r7   rI   s         r   Ú!test_query_datetimelike_eq_stringrJ  Í  se   € ô ˜VÔ$Ü	�‰�sœBŸH™H V°5Ô9Ð:Ó	;€Bà�X‰X˜˜v a™y˜k¨Ð+°FÀ6ˆXÓJ€Fä×Ñ˜& "§'¡'¨1¨#¡,Õ/r   rK  r‡  r‰  rˆ  rŠ  c                 óü   — t        j                  dt        j                  ddg«      i«      }|j                  d| › d�||¬«      }| ||d   t        j                  d«      «         }t        j                  ||«       y )NÚdtrF  rG  zdt z	 "4 days"r§   z4 days)r3   r4   Úto_timedeltarC   Ú	TimedeltarD   rE   )r|   rO  r%   r    r7   rI   r€   s          r   Ú'test_query_timedelta_compared_to_stringrO  â  sp   € ô 
�‰�tœRŸ_™_¨h¸Ð-AÓBÐCÓ	D€Bà�X‰X˜˜B˜4˜yÐ)°&ÀˆXÓH€Fà‘$�r˜$‘x¤§¡¨hÓ!7Ó8Ñ9€HÜ×Ñ˜& (Õ+r   )1rÙ  Útokenizer   Únumpyrv   r   Úpandas.errorsr   r   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsrD  r   r3   Úpandas._testingÚ_testingrD   Úpandas.core.computation.checkr   r   r  Úskipifrï  r   rZ   r    r   r%   r)   r+   r\   r  rU  rÝ  rñ  rü  r  rr  r~  r$  r  r  rJ  rm  ro  rn  rp  rO  r   r   r   ú<module>rZ     s  ðÛ Ý ã Û ÷÷ *Ð )ã Ý ÷ð
 —[‘[×'Ñ'ØÐÐ"Sð (ó Ð ò
Gð €‡�˜ (Ð+±Ô=ñó >ðð €‡�Ø�l�f—l‘l 9Ð4FÔGÐHÙôñó	ðò=÷
7-ñ 7-÷tO*ñ O*÷d
MIñ MI÷`|0ñ |0ô~t!Ð&Eô t!ôn0Ð%Dô 0ô*0Ð%Dô 0÷*F*ñ F*÷R?ñ ?÷4h0ñ h0÷VM0ñ M0ð` ‡�×ÑØà	˜L¨,Ð7Ð8Ø	˜X xÐ0Ð1Ø	�| \Ð2Ð3ðóð ‡�×Ñð&ð ó ñ0ó	óð0ð ‡�×ÑØØ	ˆ8�;‰;Ð˜$ §¡Ð,¨s°H·K±KÐ.@À4ÈÏÉÐBUÐVóñ,ó	ñ,r   