Ë
    ìmxiYF  ã            	       ó  — d dl Z d dlZd dlmZ d dlmZ 	 d dlmZm	Z	m
Z
mZmZmZmZmZ 	 d dlmZ d dlmZ e j*                  j,                  Ze j0                  d„ «       Zd„ Zd„ Zd„ Zd	„ Zd
„ Ze j*                  j?                  d ej@                  dg d¢i«       ejB                  dg d¢i«      g«      d„ «       Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)e j*                  j$                  d„ «       Z*y# e$ r Y ŒÉw xY w# e$ r dZY ŒÉw xY w)é    N)Úfield)ÚDeclarationÚTableSourceNodeOptionsÚFilterNodeOptionsÚProjectNodeOptionsÚAggregateNodeOptionsÚOrderByNodeOptionsÚHashJoinNodeOptionsÚAsofJoinNodeOptions)ÚScanNodeOptionsc                  ón   — t        j                  g d¢g d¢dœ«      } t        | «      }t        d|¬«      }|S )N©é   é   é   ©é   é   é   ©ÚaÚbÚtable_source©Úoptions)ÚpaÚtabler   r   )r   Ú
table_optsr   s      úO/home/htdocs/ttos/venv/lib/python3.12/site-packages/pyarrow/tests/test_acero.pyr   r   /   s1   € ä�H‰Hš9ª9Ñ5Ó6€EÜ'¨Ó.€JÜ˜~°zÔB€LØÐó    c                  óÞ  — t        j                  g d¢g d¢dœ«      } t        | «      }t        t	        d«      dkD  «      }t        j                  t        d|¬«      t        d|¬«      g«      }|j                  «       }|j                  | j                  dd	«      «      sJ ‚t        d|¬«      }t        d||g¬
«      }|j                  «       }|j                  | j                  dd	«      «      sJ ‚y )Nr   r   r   r   r   r   r   Úfilterr   ©r   Úinputs)
r   r   r   r   r   r   Úfrom_sequenceÚto_tableÚequalsÚslice)r   r   Úfilter_optsÚdeclÚresultr   Úfiltereds          r   Útest_declarationr-   7   sÏ   € ä�H‰Hš9ª9Ñ5Ó6€EÜ'¨Ó.€JÜ#¤E¨#£J°¡NÓ3€Kô ×$Ñ$Ü�N¨JÔ7Ü�H kÔ2ð&ó €Dð �]‰]‹_€FØ�=‰=˜Ÿ™ Q¨Ó*Ô+Ð+Ð+ô ˜~°zÔB€LÜ˜8¨[À,ÀÔP€HØ×ÑÓ €FØ�=‰=˜Ÿ™ Q¨Ó*Ô+Ð+Ñ+r    c                 ó@   — dt        | «      v sJ ‚dt        | «      v sJ ‚y )NÚTableSourceNode)ÚstrÚrepr)r   s    r   Útest_declaration_reprr2   L   s(   € à¤ LÓ 1Ñ1Ð1Ð1Ø¤ \Ó 2Ñ2Ð2Ñ2r    c                 óh  — | j                  «       5 }|j                  t        j                  dt        j                  «       fdt        j                  «       fg«      k(  sJ ‚|j	                  «       }d d d «       t        j
                  g d¢g d¢dœ«      }j                  |«      sJ ‚y # 1 sw Y   Œ9xY w)Nr   r   r   r   r   )Ú	to_readerÚschemar   Úint64Úread_allr   r'   )r   Úreaderr+   Úexpecteds       r   Útest_declaration_to_readerr:   R   sŽ   € Ø	×	Ñ	Ó	!ð # VØ�}‰}¤§	¡	¨C´·±³Ð+<¸sÄBÇHÁHÃJÐ>OÐ*PÓ QÒQÐQÐQØ—‘Ó"ˆ÷#ô �x‰xšiªiÑ8Ó9€HØ�=‰=˜Ô"Ð"Ñ"÷	#ð #ús   ‘AB(Â(B1c            	      óz  — t        j                  t        «      5  t        t	        j
                  t	        j                  g d¢«      gdg«      «       d d d «       t        d «      } t        d| «      }t        j                  t        d¬«      5  |j                  «       }d d d «       y # 1 sw Y   ŒUxY w# 1 sw Y   y xY w)Nr   r   r   z0TableSourceNode requires table which is not null©Úmatch)
ÚpytestÚraisesÚ	TypeErrorr   r   Úrecord_batchÚarrayr   Ú
ValueErrorr&   ©r   r*   Ú_s      r   Útest_table_sourcerF   Z   s™   € Ü	�‰”yÓ	!ñ NÜœrŸ™´·±ºÓ0CÐ/DÀsÀeÓLÔM÷Nô *¨$Ó/€LÜ�~ |Ó4€DÜ	�‰ÜÐLô
ñ ð �M‰M‹Oˆ÷ð ÷Nð Nú÷
ð ús   š7B%ÂB1Â%B.Â1B:c                 ó   — t        j                  | t        dt        t        d«      dkD  «      ¬«      g«      }t	        j
                  t        d¬«      5  |j                  «       }d d d «       t	        j
                  t        «      5  t        t        j                  g d¢«      «       d d d «       t	        j
                  t        «      5  t        d «       d d d «       y # 1 sw Y   ŒyxY w# 1 sw Y   ŒCxY w# 1 sw Y   y xY w)Nr"   Úcr   r   zNo match for FieldRef.Name\(c\)r<   )TFT)r   r%   r   r   r>   r?   rC   r&   r@   r   rB   rD   s      r   Útest_filterrI   f   sÆ   € ä×$Ñ$ØÜ�HÔ&7¼¸c»
ÀQ¹Ó&GÔHð&ó €Dô 
�‰”zÐ)KÔ	Lñ Ø�M‰M‹Oˆ÷ô 
�‰”yÓ	!ñ 9Üœ"Ÿ(™(Ò#6Ó7Ô8÷9ä	�‰”yÓ	!ñ  Ü˜$Ô÷ ð  ÷ð ú÷9ð 9ú÷ ð  ús$   ÁCÂ!C(ÃC4ÃC%Ã(C1Ã4C=ÚsourceÚnumberr   c                 óÞ  — | j                  t        j                  d«      dk  «      }|j                  dk(  sJ ‚t	        |«      t	        | «      u sJ ‚|j
                  j                  | j
                  «      sJ ‚| j                  t        j                  g d¢«      «      }|j                  dk(  sJ ‚t	        |«      t	        | «      u sJ ‚|j
                  j                  | j
                  «      sJ ‚y )NrK   r   )FFF)	r"   Úpcr   Únum_rowsÚtyper5   r'   r   rB   )rJ   Úresult_exprÚresult_masks      r   Útest_filter_all_rowsrR   v   sÊ   € ð —-‘-¤§¡¨Ó 2°QÑ 6Ó7€Kà×Ñ 1Ò$Ð$Ð$Ü�Ó¤ V£Ñ,Ð,Ð,Ø×Ñ×$Ñ$ V§]¡]Ô3Ð3Ð3à—-‘-¤§¡Ò)>Ó ?Ó@€Kà×Ñ 1Ò$Ð$Ð$Ü�Ó¤ V£Ñ,Ð,Ð,Ø×Ñ×$Ñ$ V§]¡]Ô3Ð3Ñ3r    c                 ó  — t        j                  | t        dt        t        j                  t        d«      d«      g«      «      g«      }|j                  «       }|j                  j                  dgk(  sJ ‚|d   j                  «       g d¢k(  sJ ‚t        j                  | t        dt        t        j                  t        d«      d«      gdg«      «      g«      }|j                  «       }|j                  j                  dgk(  sJ ‚|d   j                  «       g d¢k(  sJ ‚t        j                  t        «      5  t        t        j                  t        d«      d«      gddg«       d d d «       t        j                  | t        dt        t        j                  t        d«      «      g«      «      g«      }t        j                  t        d	¬
«      5  |j                  «       }d d d «       y # 1 sw Y   Œ…xY w# 1 sw Y   y xY w)NÚprojectr   r   zmultiply(a, 2)r   )r   r   r   Úa2Úb2z$cannot Execute non-scalar expressionr<   )r   r%   r   rM   Úmultiplyr   r&   r5   ÚnamesÚ	to_pylistr>   r?   rC   Úsum)r   r*   r+   rE   s       r   Útest_projectr[   ‰   s»  € ä×$Ñ$ØÜ�IÔ1´2·;±;¼uÀS»zÈ1Ó3MÐ2NÓOÓPð&ó €Dð �]‰]‹_€FØ�=‰=×ÑÐ#3Ð"4Ò4Ð4Ð4Ø�!‰9×ÑÓ ¢IÒ-Ð-Ð-ô ×$Ñ$ØÜ�IÔ1´2·;±;¼uÀS»zÈ1Ó3MÐ2NÐQUÐPVÓWÓXð&ó €Dð �]‰]‹_€FØ�=‰=×Ñ 4 &Ò(Ð(Ð(Ø�$‰<×!Ñ!Ó#¢yÒ0Ð0Ð0ô 
�‰”zÓ	"ñ GÜœBŸK™K¬¨c«
°AÓ6Ð7¸$À¸ÔF÷Gô ×$Ñ$ØÜ�IÔ1´2·6±6¼%À»*Ó3EÐ2FÓGÓHð&ó €Dô 
�‰”zÐ)OÔ	Pñ Ø�M‰M‹Oˆ÷ð ÷Gð Gú÷ð ús   Ä8-G)ÇG5Ç)G2Ç5G>c           	      óT  — t        j                  | t        dt        dg«      «      g«      }|j                  «       }|j                  j
                  dgk(  sJ ‚|d   j                  «       dgk(  sJ ‚t        j                  dg d¢i«      }t        ddt        j                  d¬	«      dfg«      }t        j                  t        d
t        |«      «      t        d|«      g«      }|j                  «       }|j                  j
                  dgk(  sJ ‚|d   j                  «       d gk(  sJ ‚dt        d«      dt        d«      dgt        d«      gdgfD ]x  }t        |dd dfg«      }t        j                  | t        d|«      g«      }|j                  «       }|j                  j
                  dgk(  sJ ‚|d   j                  «       dgk(  rŒxJ ‚ t        ddgdd dfg«      }t        j                  | t        d|«      g«      }t        j                  t        d¬«      5  |j                  «       }d d d «       t        dg«      }t        j                  | t        d|«      g«      }t        j                  t        d¬«      5  |j                  «       }d d d «       y # 1 sw Y   ŒkxY w# 1 sw Y   y xY w)NÚ	aggregate©r   rZ   NÚa_sumr_   r   r   ©r   r   NrZ   F)Ú
skip_nullsr   r   r   z/Function 'sum' accepts 1 arguments but 2 passedr<   )r   Úhash_sumNr_   zis a hash aggregate function)r   r%   r   r&   r5   rX   rY   r   r   rM   ÚScalarAggregateOptionsr   r   r>   r?   rC   )r   r*   r+   r   Ú	aggr_optsÚtargetrE   s          r   Útest_aggregate_scalarrf   ©   s¡  € Ü×$Ñ$ØÜ�KÔ!5Ð7RÐ6SÓ!TÓUð&ó €Dð �]‰]‹_€FØ�=‰=×Ñ 7 )Ò+Ð+Ð+Ø�'‰?×$Ñ$Ó&¨1¨#Ò-Ð-Ð-ô �H‰H�cš<Ð(Ó)€EÜ$Ø
ˆu”b×/Ñ/¸5ÔAÀ7Ð	KÐLó€Iô ×$Ñ$Ü�NÔ$:¸5Ó$AÓBÜ�K Ó+ð&ó €Dð �]‰]‹_€FØ�=‰=×Ñ 7 )Ò+Ð+Ð+Ø�'‰?×$Ñ$Ó&¨4¨&Ò0Ð0Ð0ð œ˜c›
 A¤u¨Q£x°#°¼¸s»¸ÀqÀcÐJò 2ˆÜ(¨6°5¸$ÀÐ*HÐ)IÓJˆ	Ü×(Ñ(Øœ; {°IÓ>Ð?ó
ˆð —‘“ˆØ�}‰}×"Ñ" w iÒ/Ð/Ð/Ø�g‰×(Ñ(Ó*¨q¨cÓ1Ð1Ð1ð2ô %¨¨S z°5¸$ÀÐ&HÐ%IÓJ€IÜ×$Ñ$Ø	”{ ;°	Ó:Ð;ó€Dô 
�‰ÜÐKô
ñ ð �M‰M‹Oˆ÷ô %Ð&FÐ%GÓH€IÜ×$Ñ$Ø	”{ ;°	Ó:Ð;ó€Dô 
�‰”zÐ)GÔ	Hñ Ø�M‰M‹Oˆ÷ð ÷ð ú÷ð ús   ÈJÉ8JÊJÊJ'c                  óê  — t        j                  g d¢g d¢dœ«      } t        | «      }t        d|¬«      }t	        dgdg¬«      }t        j
                  |t        d	|«      g«      }|j                  «       }t        j                  d
dgddgdœ«      }|j                  |«      sJ ‚t	        ddt        j                  d«      dfgdg¬«      }t        j
                  |t        d	|«      g«      }|j                  «       }t        j                  d
dgddgdœ«      }|j                  |«      sJ ‚t	        dgt        d«      g¬«      }t        j
                  |t        d	|«      g«      }|j                  «       }|j                  |«      sJ ‚t	        dgdg¬«      }t        j
                  |t        d	|«      g«      }t        j                  t        «      5  |j                  «       }d d d «       y # 1 sw Y   y xY w)Nr`   )ÚfooÚbarrh   r   r   r   )r   Ú
hash_countNúcount(a)r   )Úkeysr]   rh   ri   r   )r   rk   r   rj   Úallrk   r   r^   )r   r   r   r   r   r%   r&   r'   rM   ÚCountOptionsr   r>   r?   rC   )	r   r   r   rd   r*   r+   r9   Úexpected_allrE   s	            r   Útest_aggregate_hashrp   Ü   sá  € Ü�H‰Hš<Ò.CÑDÓE€EÜ'¨Ó.€JÜ˜~°zÔB€Lô %Ø	.Ð/°s°eô=€Iä×$Ñ$Ø”k +¨yÓ9ð&ó €Dð �]‰]‹_€FÜ�x‰x˜u e˜n¸1¸a¸&ÑAÓB€HØ�=‰=˜Ô"Ð"Ð"ô %Ø
ˆ|œRŸ_™_¨UÓ3°ZÐ	@ÐAÈÈô€Iô ×$Ñ$Ø”k +¨yÓ9ð&ó €Dð �]‰]‹_€FÜ—8‘8 5¨% .¸qÀ!¸fÑEÓF€LØ�=‰=˜Ô&Ð&Ð&ô %Ø	.Ð/´u¸S³z°lô€Iô ×$Ñ$Ø”k +¨yÓ9ð&ó €Dð �]‰]‹_€FØ�=‰=˜Ô"Ð"Ð"ô %Ð&AÐ%BÈ#ÈÔO€IÜ×$Ñ$Ø”k +¨yÓ9ð&ó €Dô 
�‰”zÓ	"ñ Ø�M‰M‹Oˆ÷÷ ñ ús   ÇG)Ç)G2c                  óÔ  — t        j                  g d¢g d¢dœ«      } t        dt        | «      «      }t	        dg«      }t        j
                  |t        d|«      g«      }|j                  «       }t        j                  g d¢g d¢dœ«      }|j                  |«      sJ ‚t	        t        d	«      d
fg«      }t        j
                  |t        d|«      g«      }|j                  «       }t        j                  g d¢g d¢dœ«      }|j                  |«      sJ ‚t	        dgd¬«      }t        j
                  |t        d|«      g«      }|j                  «       }t        j                  g d¢g d¢dœ«      }|j                  |«      sJ ‚t	        g «      }t        j
                  |t        d|«      g«      }t        j                  t        d¬«      5  |j                  «       }d d d «       t        j                  t        d¬«      5  t	        dg«      }d d d «       t        j                  t        d¬«      5  t	        dgd¬«      }d d d «       y # 1 sw Y   ŒlxY w# 1 sw Y   ŒHxY w# 1 sw Y   y xY w)N)r   r   r   r   )r   r   Nr   r   r   )r   Ú	ascendingÚorder_by)r   r   r   r   )r   r   r   Nr   Ú
descending)r   r   r   r   )r   r   r   N)r   rt   Úat_start)Únull_placement)r   r   r   r   )Nr   r   r   z1`ordering` must be an explicit non-empty orderingr<   z&"decreasing" is not a valid sort order)r   Ú
decreasingz%"start" is not a valid null placementÚstart)r   r   r   r   r	   r%   r&   r'   r   r>   r?   rC   )r   r   Úord_optsr*   r+   r9   rE   s          r   Útest_order_byrz   
  s  € Ü�H‰Hš<ªoÑ>Ó?€EÜ˜~Ô/EÀeÓ/LÓM€Lä!Ð#5Ð"6Ó7€HÜ×$Ñ$ l´KÀ
ÈHÓ4UÐ%VÓW€DØ�]‰]‹_€FÜ�x‰xšl²ÑAÓB€HØ�=‰=˜Ô"Ð"Ð"ä!¤E¨#£J°Ð#=Ð">Ó?€HÜ×$Ñ$ l´KÀ
ÈHÓ4UÐ%VÓW€DØ�]‰]‹_€FÜ�x‰xšl²ÑAÓB€HØ�=‰=˜Ô"Ð"Ð"ä!Ð#4Ð"5ÀjÔQ€HÜ×$Ñ$ l´KÀ
ÈHÓ4UÐ%VÓW€DØ�]‰]‹_€FÜ�x‰xšl²ÑAÓB€HØ�=‰=˜Ô"Ð"Ð"ô " "Ó%€HÜ×$Ñ$ l´KÀ
ÈHÓ4UÐ%VÓW€DÜ	�‰ÜÐMô
ñ ð �M‰M‹Oˆ÷ô
 
�‰”zÐ)SÔ	Tñ 6ÜÐ 3Ð4Ó5ˆ÷6ô 
�‰”zÐ)RÔ	Sñ MÜÐ 2Ð3ÀGÔLˆ÷Mð M÷ð ú÷
6ð 6ú÷Mð Mús$   Ç
IÇ>IÈ.IÉIÉIÉI'c            	      ó.  — t        j                  g d¢g d¢dœ«      } t        dt        | «      ¬«      }t        j                  g d¢g d¢dœ«      }t        dt        |«      ¬«      }t	        dd	d	¬
«      }t        d|||g¬«      }|j                  «       }t        j                  ddgddgddgddggg d¢¬«      }|j                  |«      sJ ‚t        d	«      d	gt        d	«      gfD ]C  }t	        d||¬
«      }t        d|||g¬«      }|j                  «       }|j                  |«      rŒCJ ‚ t	        dd	d	¬
«      }t        d|||g¬«      }|j                  «       }t        j                  g d¢g d¢g d¢g d¢gg d¢¬«      }|j                  d«      j                  |«      sJ ‚t	        dd	d	dd¬«      }t        d|||g¬«      }|j                  «       }t        j                  g d¢g d¢g d¢g d¢gg d¢¬«      }|j                  d«      j                  |«      sJ ‚t	        dd	d	d	dgt        d«      g¬«      }t        d|||g¬«      }|j                  «       }t        j                  g d¢g d¢g d¢gg d¢¬«      }|j                  d«      j                  |«      sJ ‚y )Nr   r   ©Úkeyr   r   r   ©r   r   r   ©r}   r   Úinnerr}   )Ú	left_keysÚ
right_keysÚhashjoinr#   r   r   r   r   r   ©r}   r   r}   r   ©rX   ú
left outer)Nr   r   )Nr   r   r   Ú_leftÚ_right)r�   r‚   Úoutput_suffix_for_leftÚoutput_suffix_for_right)Úkey_leftr   Ú	key_rightr   r   )r�   r‚   Úleft_outputÚright_output)r}   r   r   )	r   r   r   r   r
   r&   r'   r   Úsort_by)	ÚleftÚleft_sourceÚrightÚright_sourceÚ	join_optsÚjoinedr+   r9   rl   s	            r   Útest_hash_joinr–   /  s’  € Ü�8‰8šIªIÑ6Ó7€DÜ˜nÔ6LÈTÓ6RÔS€KÜ�H‰HšYªYÑ7Ó8€EÜ˜~Ô7MÈeÓ7TÔU€Lô $ G°uÈÔO€IÜØ˜I¨{¸LÐ.IôK€Fà�_‰_Ó€FÜ�x‰xØ
ˆQˆ�!�Q�˜!˜Q˜ ! Q Ð(Ú&ô(€Hð �=‰=˜Ô"Ð"Ð"ä�u“ ˜w¬¨u«¨Ð7ò 'ˆÜ'¨¸4ÈDÔQˆ	ÜØ 	°;ÀÐ2MôOˆà—‘Ó"ˆØ�}‰}˜XÕ&Ð&Ð&ð'ô $Ø °%ô9€IäØ˜I¨{¸LÐ.IôK€Fà�_‰_Ó€FÜ�x‰xÚ	’Iš|ª\Ð:Ú&ô€Hð �>‰>˜#Ó×%Ñ% hÔ/Ð/Ð/ô $Ø °%Ø&ÀôJ€Iô Ø˜I¨{¸LÐ.IôK€Fà�_‰_Ó€FÜ�x‰xÚ	’Iš|ª\Ð:Ú1ô€Hð �>‰>˜#Ó×%Ñ% hÔ/Ð/Ð/ô $Ø °%Ø˜C�L´°c³
¨|ô=€Iô Ø˜I¨{¸LÐ.IôK€Fà�_‰_Ó€FÜ�x‰xÚ	’Iš|Ð,Úô€Hð �>‰>˜#Ó×%Ñ% hÔ/Ð/Ñ/r    c                  óh  — t        j                  g d¢g d¢dœ«      } t        dt        | «      ¬«      }t        j                  g d¢g d¢dœ«      }t        dt        |«      ¬«      }t	        dd	d	t        j                  t        j                  d
«      d«      ¬«      }t        d|||g¬«      }|j                  «       }t        j                  dgdgdgdggg d¢¬«      }|j                  |«      sJ ‚t	        dd	d	t        j                  t        j                  d
«      d«      t        j                  t        j                  d«      d«      z  ¬«      }t        d|||g¬«      }|j                  «       }t        j                  g d¢g d¢g d¢g d¢gg d¢¬«      }|j                  |«      sJ ‚t        j                  d«      }t	        dd	d	|¬«      }t        d|||g¬«      }|j                  «       }t        j                  ddgddgddgddggg d¢¬«      }|j                  |«      sJ ‚t        j                  d«      }	t	        dd	d	|	¬«      }t        d|||g¬«      }|j                  «       }t        j                  t        j                  g t        j                  «       ¬«      t        j                  g t        j                  «       ¬«      t        j                  g t        j                  «       ¬«      t        j                  g t        j                  «       ¬«      gg d¢¬«      }|j                  |«      sJ ‚y )Nr   r   r|   r   r   r~   r   r€   r}   r   r   )r�   r‚   Úfilter_expressionrƒ   r#   r   r   r„   r…   r†   r   é
   )r   r   r   )r   r   r   )r   NN)r   NNTr   r   F)rO   )r   r   r   r   r
   rM   Úequalr   r&   r'   ÚscalarrB   r6   )
r�   r‘   r’   r“   r”   r•   r+   r9   Úalways_trueÚalways_falses
             r   Ú#test_hash_join_with_residual_filterrž   m  s¶  € Ü�8‰8šIªIÑ6Ó7€DÜ˜nÔ6LÈTÓ6RÔS€KÜ�H‰HšYªYÑ7Ó8€EÜ˜~Ô7MÈeÓ7TÔU€Lä#Ø˜5¨UÜŸ(™(¤2§8¡8¨C£=°!Ó4ô6€Iô Ø˜I¨{¸LÐ.IôK€Fà�_‰_Ó€FÜ�x‰xØ
ˆˆqˆc�A�3˜˜ÐÚ&ô(€Hð �=‰=˜Ô"Ð"Ð"ô $Ø °%ÜŸ(™(¤2§8¡8¨C£=°!Ó4´r·x±xÄÇÁÈÃÈrÓ7RÑRô€Iô Ø˜I¨{¸LÐ.IôK€Fà�_‰_Ó€FÜ�x‰xÚ	’Iš²Ð@Ú&ô(€Hð �=‰=˜Ô"Ð"Ð"ô —)‘)˜D“/€KÜ#Ø˜5¨UØ%ô'€Iô Ø˜I¨{¸LÐ.IôK€Fà�_‰_Ó€FÜ�x‰xØ
ˆQˆ�!�Q�˜!˜Q˜ ! Q Ð(Ú&ô€Hð �=‰=˜Ô"Ð"Ð"ô —9‘9˜UÓ#€LÜ#Ø˜5¨UØ&ô(€Iô Ø˜I¨{¸LÐ.IôK€Fà�_‰_Ó€FÜ�x‰xä�H‰H�RœbŸh™h›jÔ)Ü�H‰H�RœbŸh™h›jÔ)Ü�H‰H�RœbŸh™h›jÔ)Ü�H‰H�RœbŸh™h›jÔ)ð		
ò 'ô€Hð �=‰=˜Ô"Ð"Ñ"r    c            	      ób  — t        j                  g d¢g d¢g d¢dœ«      } t        dt        | «      ¬«      }t        j                  g d¢g d¢g d¢d	œ«      }t        dt        |«      ¬«      }t	        d
dgd
dgd¬«      }t        d|||g¬«      }|j                  «       }t        j                  g d¢g d¢g d¢g d¢gg d¢¬«      }||k(  sJ ‚t        d«      dgt        d«      gfD ]K  }t        d
«      d
fD ]9  }	t	        |	||	|d¬«      }t        d|||g¬«      }|j                  «       }||k(  rŒ9J ‚ ŒM y )Nr   )r   r   r   r   )r}   Útsr   r   r   r~   )r   r   r   )r}   r    r   r    r}   r   )Úleft_onÚleft_byÚright_onÚright_byÚ	toleranceÚasofjoinr#   )Nr   N)r}   r    r   r   r…   )r   r   r   r   r   r&   r   )
r�   r‘   r’   r“   r”   r•   r+   r9   ÚbyÚons
             r   Útest_asof_joinr©   ­  sD  € Ü�8‰8šIªYºYÑGÓH€DÜ˜nÔ6LÈTÓ6RÔS€KÜ�H‰HšYªiºiÑHÓI€EÜ˜~Ô7MÈeÓ7TÔU€Lô $Ø˜u˜gØ  Øô€Iô
 Ø˜I¨{¸LÐ.Iô€Fð �_‰_Ó€FÜ�x‰xÚ	’Išyª/Ð:Ú%ô'€Hð �XÒÐÐä�U‹|˜e˜W¤u¨U£| nÐ5ò 
&ˆÜ˜“; Ð%ò 		&ˆBÜ+Ø BØ bØôˆIô
 !Ø I°{ÀLÐ6QôSˆFà—_‘_Ó&ˆFØ˜XÓ%Ð%Ð%ñ		&ñ
&r    c           	      ó²  — t        j                  g d¢g d¢dœ«      }t        j                  || dz  d¬«       t        j                  | dz  d¬«      }t        dt        |«      «      }|j                  «       }|j                  j                  g d¢k(  sJ ‚|j                  d	d
g«      j                  |«      sJ ‚t        |t        d	«      dkD  ¬«      }t        d|«      }|j                  «       j                  dk(  sJ ‚t        |t        d	«      dkD  ¬«      }t        d|«      }|j                  «       j                  dk(  sJ ‚t        |dt        j                  t        d	«      d«      i¬«      }t        d|«      }|j                  «       }|d	   j!                  «       g d¢k(  sJ ‚t        j"                  |d
   j%                  «       «      j'                  «       sJ ‚y )Nr   r   r   ÚdatasetÚparquet)ÚformatÚscan)r   r   Ú__fragment_indexÚ__batch_indexÚ__last_in_fragmentÚ
__filenamer   r   r   )r"   r   r   r   rU   r   )Úcolumns)r   r   ÚdsÚwrite_datasetr«   r   r   r&   r5   rX   Úselectr'   r   rN   rM   rW   rY   rm   Úis_nullÚas_py)Útempdirr   r«   r*   r+   Ú	scan_optss         r   Ú	test_scanr»   Ï  s”  € ä�H‰Hš9ª9Ñ5Ó6€EÜ×Ñ�U˜G iÑ/¸	ÕBÜ�j‰j˜ 9Ñ,°YÔ?€GÜ�vœ¨wÓ7Ó8€DØ�]‰]‹_€FØ�=‰=×Ñò #ò ð ð ð �=‰=˜#˜s˜Ó$×+Ñ+¨EÔ2Ð2Ð2ô   ´°c³
¸Q±Ô?€IÜ�v˜yÓ)€Dà�=‰=‹?×#Ñ# qÒ(Ð(Ð(ä ´°c³
¸Q±Ô?€IÜ�v˜yÓ)€Dà�=‰=‹?×#Ñ# qÒ(Ð(Ð(ô   °$¼¿¹ÄEÈ#ÃJÐPQÓ8RÐ1SÔT€IÜ�v˜yÓ)€DØ�]‰]‹_€Fà�#‰;× Ñ Ó"¢iÒ/Ð/Ð/ä�6‰6�&˜‘+×%Ñ%Ó'Ó(×.Ñ.Ô0Ð0Ñ0r    )+r>   Úpyarrowr   Úpyarrow.computeÚcomputerM   r   Úpyarrow.aceror   r   r   r   r   r	   r
   r   ÚImportErrorÚpyarrow.datasetr«   r´   r   ÚmarkÚaceroÚ
pytestmarkÚfixturer   r-   r2   r:   rF   rI   ÚparametrizerA   r   rR   r[   rf   rp   rz   r–   rž   r©   r»   © r    r   ú<module>rÈ      s7  ðó$ ã Ý Ý !ð	÷	÷ 	ó 	ðÝ Ý-ð �[‰[×Ñ€
ð ‡�ñó ðò,ò*3ò#ò	ò ð  ‡�×Ñ˜Ø€B‡O�O�XšyÐ)Ó*Ø€B‡H�Hˆhš	Ð"Ó#ð$ó ñ4ó	ð4òò@0òf+ò\"MòJ;0ò|=#ò@&ðD ‡�×Ññ 1ó ñ 1øð[ ò 	Ùð	ûð ò Ø	‚Bðús"   –C, «C7 Ã,C4Ã3C4Ã7DÄ D