Ë
    _Qêj]U  ã            	       ó$  — 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mZ 	 d dlmZ d dlmZ e j,                  j.                  Ze j2                  d„ «       Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Z d„ Z!d„ Z"d„ Z#e j,                  jI                  d ejJ                  dg d¢i«       ejL                  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Ú"RecordBatchReaderSourceNodeOptionsÚ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      ú]/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/pyarrow/tests/test_acero.pyr   r   0   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.   8   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_reprr3   M   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;   S   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_sourcerG   [   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                  óp  — t        j                  g d¢g d¢dœ«      } t         j                  j                  | j                  | j                  d¬«      «      }t        dt        |«      «      }|j                  «       }|j                  | «      sJ ‚t        dt        |«      «      }|j                  «       }|j                  dk(  sJ ‚t        j                  t        «      5  t        | «       d d d «       t        j                  t        «      5  t        d «       d d d «       y # 1 sw Y   Œ7xY w# 1 sw Y   y xY w)Nr   r   r   r   ©Úmax_chunksizeÚrecord_batch_reader_sourcer   )r   r   ÚRecordBatchReaderÚfrom_batchesr6   Ú
to_batchesr   r   r'   r(   Únum_rowsr?   r@   rA   )r   r9   r+   r,   s       r    Útest_record_batch_reader_sourcerP   g   s  € Ü�H‰Hš9ª9Ñ5Ó6€EÜ×!Ñ!×.Ñ.Ø�‰�e×&Ñ&°QÐ&Ó7ó€Fô Ø$Ô&HÈÓ&Pó€Dð �]‰]‹_€FØ�=‰=˜ÔÐÐô Ø$Ô&HÈÓ&Pó€Dð �]‰]‹_€FØ�?‰?˜aÒÐÐä	�‰”yÓ	!ñ 2Ü*¨5Ô1÷2ô 
�‰”yÓ	!ñ 1Ü*¨4Ô0÷1ð 1÷2ð 2ú÷1ð 1ús   ÃD ÄD,Ä D)Ä,D5c                  ó|  ‡‡— t        j                  t        t        d«      «      t        t        dd«      «      dœ«      } | j	                  d¬«      Šg Šˆˆfd„}t         j
                  j                  | j                   |«       «      }t        j                  t        dt        |«      «      t        dt        t        d	«      d
k\  «      ¬«      g«      }‰g k(  sJ ‚|j                  «       }‰t        t        t        ‰«      «      «      k(  sJ ‚|j                  d	«      j!                  | j#                  d
«      «      sJ ‚y )Né
   é   r   r   rI   c               3   ó^   •K  — t        ‰«      D ]  \  } }‰j                  | «       |–— Œ y ­w)N)Ú	enumerateÚappend)ÚiÚbatchÚbatchesÚconsumeds     €€r    Úgenz;test_record_batch_reader_source_lazy_generator.<locals>.gen‡   s0   øè ø€ Ü! 'Ó*ò 	‰HˆAˆuØ�O‰O˜AÔØ‹Kñ	ùs   ƒ*-rK   r#   r   r   r   )r   r   ÚlistÚrangerN   rL   rM   r6   r   r&   r   r   r   r'   ÚlenÚsort_byr(   r)   )r   r[   r9   r+   r,   rY   rZ   s        @@r    Ú.test_record_batch_reader_source_lazy_generatorr`   €   s  ù€ ô �H‰Hœ4¤ b£	›?´´e¸BÀ³mÓ1DÑEÓF€EØ×Ñ¨QÐÓ/€GØ€Hõô
 ×!Ñ!×.Ñ.¨u¯|©|¹S»UÓC€FÜ×$Ñ$ÜØ(Ô*LÈVÓ*Tó	
ô 	�HÔ&7¼¸c»
Àa¹Ó&HÔIð	&ó €Dð �rŠ>Ðˆ>Ø�]‰]‹_€FØ”tœE¤# g£,Ó/Ó0Ò0Ð0Ð0Ø�>‰>˜#Ó×%Ñ% e§k¡k°!£nÔ5Ð5Ñ5r!   c                  óX  ‡— t        j                  dt        j                  «       fg«      Šˆfd„} t         j                  j	                  ‰ | «       «      }t        dt        |«      «      }t        j                  t        d¬«      5  |j                  «       }d d d «       y # 1 sw Y   y xY w)Nr   c               3   ó€   •K  — t        j                  t        j                  g d¢«      g‰ ¬«      –— t        d«      ‚­w)Nr   ©r6   úerror in generator)r   rB   rC   rD   rc   s   €r    r[   z<test_record_batch_reader_source_generator_error.<locals>.gen�   s0   øè ø€ Ü�o‰oœrŸx™xª	Ó2Ð3¸FÔCÒCÜÐ-Ó.Ð.ùs   ƒ;>rK   rd   r=   )r   r6   r7   rL   rM   r   r   r?   r@   rD   r'   )r[   r9   r+   rF   r6   s       @r    Ú/test_record_batch_reader_source_generator_errorre   ™   s†   ø€ ä�Y‰Y˜œbŸh™h›jÐ)Ð*Ó+€Fô/ô ×!Ñ!×.Ñ.¨v±s³uÓ=€FÜØ$Ô&HÈÓ&Pó€Dô 
�‰”zÐ)=Ô	>ñ Ø�M‰M‹Oˆ÷÷ ñ ús   ÂB Â B)c                  ó$  — t        j                  g d¢g d¢dœ«      } t        j                  g d¢g d¢dœ«      }t         j                  j                  | j                  | j                  d¬«      «      }t        d	t        |«      «      }t        d
t        |«      «      }t        dddddgdg¬«      }t        d|||g¬«      }|j                  «       }t        j                  g d¢g d¢g d¢dœ«      }|j                  d«      j                  |«      sJ ‚y )N©r   r   r   r   )r   r   ÚcÚd©Úkeyr   )r   r   r   r   )ÚpÚqÚrÚs©rk   r   r   rI   rK   r   Úinnerrk   r   r   ©Ú	left_keysÚ
right_keysÚleft_outputÚright_outputÚhashjoinr$   ©r   r   r   )r   rh   ri   )rl   rm   rn   ©rk   r   r   )r   r   rL   rM   r6   rN   r   r   r   r   r'   r_   r(   )	ÚleftÚrightr9   Úleft_sourceÚright_sourceÚ	join_optsÚjoinedr,   r:   s	            r    Ú/test_record_batch_reader_source_hash_join_prober€   ©   sø   € ä�8‰8šLÒ/CÑDÓE€DÜ�H‰Hš\Ò0DÑEÓF€EÜ×!Ñ!×.Ñ.Ø�‰�T—_‘_°1�_Ó5ó€Fô Ø$Ô&HÈÓ&Pó€Kô ˜~Ô/EÀeÓ/LÓM€LÜ#Ø˜5¨UØ˜C�L°¨uô€Iô ˜¨YØ!,¨lÐ ;ô=€Fà�_‰_Ó€FÜ�x‰xÚš²_ñó €Hð �>‰>˜%Ó ×'Ñ'¨Ô1Ð1Ñ1r!   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#   rh   r   r   zNo match for FieldRef.Name\(c\)r=   )TFT)r   r&   r   r   r?   r@   rD   r'   rA   r   rC   rE   s      r    Útest_filterr‚   Á   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 )Nr„   r   )FFF)	r#   Úpcr   rO   Útyper6   r(   r   rC   )rƒ   Úresult_exprÚresult_masks      r    Útest_filter_all_rowsrŠ   Ñ   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   r†   Úmultiplyr   r'   r6   ÚnamesÚ	to_pylistr?   r@   rD   Úsum)r   r+   r,   rF   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   r’   NÚa_sumr—   r   r   ©r   r   Nr’   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'   r6   r�   r‘   r   r   r†   ÚScalarAggregateOptionsr   r   r?   r@   rD   )r   r+   r,   r   Ú	aggr_optsÚtargetrF   s          r    Útest_aggregate_scalarrž     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Úbarr    r   r   r   )r   Ú
hash_countNúcount(a)r   )Úkeysr•   r    r¡   r   )r   r£   r   r¢   Úallr£   r   r–   )r   r   r   r   r	   r&   r'   r(   r†   ÚCountOptionsr   r?   r@   rD   )	r   r   r   rœ   r+   r,   r:   Úexpected_allrF   s	            r    Útest_aggregate_hashr¨   7  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	        d	g«      }t        j
                  |t        d|«      g«      }|j                  «       }t        j                  g d¢g d¢dœ«      }|j                  |«      sJ ‚t	        t        d
«      ddf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«      }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 «       y # 1 sw Y   ŒjxY w# 1 sw Y   ŒFxY w# 1 sw Y   y xY w)Nrg   )r   r   Nr   r   r   )r   Ú	ascendingÚat_endÚorder_by)r   r   r   r   )r   r   r   N)r   rª   r   Ú
descendingr«   )r   r   r   r   )r   r   r   N)r   r­   Úat_start)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   Ú
decreasingr«   z%"start" is not a valid null placement)r   rª   Ústart)r   r   r   r   r
   r&   r'   r(   r   r?   r@   rD   )r   r   Úord_optsr+   r,   r:   rF   s          r    Útest_order_byr²   e  sÈ  € Ü�H‰Hš<ªoÑ>Ó?€EÜ˜~Ô/EÀeÓ/LÓM€Lä!Ð#?Ð"@ÓA€HÜ×$Ñ$ l´KÀ
ÈHÓ4UÐ%VÓW€DØ�]‰]‹_€FÜ�x‰xšl²ÑAÓB€HØ�=‰=˜Ô"Ð"Ð"ä!Ð#5Ð"6Ó7€HÜ×$Ñ$ l´KÀ
ÈHÓ4UÐ%VÓW€DØ�]‰]‹_€FÜ�x‰xšl²ÑAÓB€HØ�=‰=˜Ô"Ð"Ð"ä!¤E¨#£J°¸hÐ#GÐ"HÓI€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Ø�=‰=˜Ô"Ð"Ð"ä!Ð#@Ð"AÓB€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ñ @ÜÐ =Ð>Ó?ˆ÷@ô 
�‰”zÐ)RÔ	Sñ >ÜÐ ;Ð<Ó=ˆ÷>ð >÷ð ú÷
@ð @ú÷>ð >ús$   Ê,L&Ë L2ÌL>Ì&L/Ì2L;Ì>M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   rj   r   r   rx   rp   rq   rk   )rs   rt   rw   r$   r   r   r   r   r   ©rk   r   rk   r   ©r�   ú
left outer)Nr   r   )Nr   r   r   Ú_leftÚ_right)rs   rt   Úoutput_suffix_for_leftÚoutput_suffix_for_right)Úkey_leftr   Ú	key_rightr   r   rr   ry   )	r   r   r   r   r   r'   r(   r   r_   )	rz   r|   r{   r}   r~   r   r,   r:   r¤   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   rj   r   r   rx   rp   rq   rk   r   r   )rs   rt   Úfilter_expressionrw   r$   r   r   r´   rµ   r¶   r   rR   )r   r   r   )r   r   r   )r   NN)r   NNTr   r   F)r‡   )r   r   r   r   r   r†   Úequalr   r'   r(   ÚscalarrC   r7   )
rz   r|   r{   r}   r~   r   r,   r:   Úalways_trueÚalways_falses
             r    Ú#test_hash_join_with_residual_filterrÄ   Ô  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   )rk   Útsr   r   r   rx   )r   r   r   )rk   rÆ   r   rÆ   rk   r   )Úleft_onÚleft_byÚright_onÚright_byÚ	toleranceÚasofjoinr$   )Nr   N)rk   rÆ   r   r   rµ   )r   r   r   r   r   r'   r   )
rz   r|   r{   r}   r~   r   r,   r:   Ú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   r�   r   )Úcolumns)r   r   ÚdsÚwrite_datasetrÑ   r   r   r'   r6   r�   Úselectr(   r   rO   r†   r�   r‘   r¥   Úis_nullÚas_py)Útempdirr   rÑ   r+   r,   Ú	scan_optss         r    Ú	test_scanrá   6  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!   )0r?   Úpyarrowr   Úpyarrow.computeÚcomputer†   r   Úpyarrow.aceror   r   r   r   r   r	   r
   r   r   ÚImportErrorÚpyarrow.datasetrÑ   rÚ   r   ÚmarkÚaceroÚ
pytestmarkÚfixturer   r.   r3   r;   rG   rP   r`   re   r€   r‚   ÚparametrizerB   r   rŠ   r“   rž   r¨   r²   r½   rÄ   rÏ   rá   © r!   r    ú<module>rî      sJ  ðó$ ã Ý Ý !ð	÷
÷ 
õ 
ðÝ Ý-ð �[‰[×Ñ€
ð ‡�ñó ðò,ò*3ò#ò	ò1ò26ò2ò 2ò0 ð  ‡�×Ñ˜Ø€B‡O�O�XšyÐ)Ó*Ø€B‡H�Hˆhš	Ð"Ó#ð$ó ñ4ó	ð4òò@0òf+ò\.>òb;0ò|=#ò@&ðD ‡�×Ññ 1ó ñ 1øðg ò 	Ùð	ûð ò Ø	‚Bðús"   –C: ­D Ã:DÄDÄDÄD