
    z-Ph:                     J   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 n# e$ r Y nw xY w	 d dlmZ d dlmZ n# e$ r dZY nw xY we j        j        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$e j        j        d             Z%dS )    N)field)DeclarationTableSourceNodeOptionsFilterNodeOptionsProjectNodeOptionsAggregateNodeOptionsOrderByNodeOptionsHashJoinNodeOptionsAsofJoinNodeOptions)ScanNodeOptionsc                  |    t          j        g dg dd          } t          |           }t          d|          }|S )N                  abtable_sourceoptions)patabler   r   )r   
table_optsr   s      X/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pyarrow/tests/test_acero.pyr   r   /   sF    H9999995566E'..J~zBBBL    c                  F   t          j        g dg dd          } t          |           }t          t	          d          dk              }t          j        t          d|          t          d|          g          }|                                }|                    | 	                    dd	                    sJ t          d|          }t          d||g
          }|                                }|                    | 	                    dd	                    sJ d S )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   H9999995566E'..J#E#JJN33K $NJ777Hk222&  D ]]__F==Q**+++++ ~zBBBL8[,PPPH  F==Q**+++++++r    c                 R    dt          |           v sJ dt          |           v sJ d S )NTableSourceNode)strrepr)r   s    r   test_declaration_reprr2   L   s:    L 1 11111\ 2 2222222r    c                 x   |                                  5 }|j        t          j        dt          j                    fdt          j                    fg          k    sJ |                                }d d d            n# 1 swxY w Y   t          j        g dg dd          }|                    |          sJ d S )Nr   r   r   r   r   )	to_readerschemar   int64read_allr   r'   )r   readerr+   expecteds       r   test_declaration_to_readerr:   R   s    				!	! #V}	C+<sBHJJ>O*P Q QQQQQ""# # # # # # # # # # # # # # # xiiiiii8899H=="""""""s   AA==BBc            	         t          j        t                    5  t          t	          j        t	          j        g d          gdg                     d d d            n# 1 swxY w Y   t          d           } t          d|           }t          j        t          d          5  |	                                }d d d            d S # 1 swxY w Y   d S )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   sS   	y	!	! N Nr0C0C/DseLLMMMN N N N N N N N N N N N N N N *$//L~|44D	L
 
 
   MMOO                 s#   9AA#&A#$CC
C
c                 D   t          j        | t          dt          t          d          dk                        g          }t	          j        t          d          5  |                                }d d d            n# 1 swxY w Y   t	          j        t                    5  t          t          j
        g d                     d d d            n# 1 swxY w Y   t	          j        t                    5  t          d            d d d            d S # 1 swxY w Y   d S )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&GHHH&  D 
z)K	L	L	L  MMOO               
y	!	! 9 9"(#6#6#6778889 9 9 9 9 9 9 9 9 9 9 9 9 9 9	y	!	!    $                                   s6   B  BB$$CCC8DDDc                 p   t          j        | t          dt          t          j        t          d          d          g                    g          }|                                }|j        j        dgk    sJ |d         	                                g dk    sJ t          j        | t          dt          t          j        t          d          d          gdg                    g          }|                                }|j        j        dgk    sJ |d         	                                g dk    sJ t          j        t                    5  t          t          j        t          d          d          gddg           d d d            n# 1 swxY w Y   t          j        | t          dt          t          j        t          d                    g                    g          }t          j        t          d	
          5  |                                }d d d            d S # 1 swxY w Y   d S )Nprojectr   r   zmultiply(a, 2)r   )r   r   r   a2b2z$cannot Execute non-scalar expressionr<   )r   r%   r   pcmultiplyr   r&   r5   names	to_pylistr>   r?   rC   sum)r   r*   r+   rE   s       r   test_projectrS   v   s   $I12;uSzz13M3M2NOOPP&  D ]]__F=#3"44444!9  III---- $I12;uSzz13M3M2NQUPVWWXX&  D ]]__F=4&(((($<!!##yyy0000 
z	"	" G GBKc

A667$FFFG G G G G G G G G G G G G G G $I126%**3E3E2FGGHH&  D 
z)O	P	P	P  MMOO                 s$   4FFF	H++H/2H/c           	         t          j        | t          dt          dg                    g          }|                                }|j        j        dgk    sJ |d                                         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        dgk    sJ |d                                         d gk    sJ dt          d          dt          d          dgt          d          gdgfD ]}t          |dd dfg          }t          j        | t          d|          g          }|                                }|j        j        dgk    sJ |d                                         dgk    sJ t          ddgdd dfg          }t          j        | t          d|          g          }t          j        t          d          5  |                                }d d d            n# 1 swxY w Y   t          dg          }t          j        | t          d|          g          }t          j        t          d          5  |                                }d d d            d S # 1 swxY w Y   d S )N	aggregater   rR   Na_sumrW   r   r   r   r   NrR   F)
skip_nullsr   r   r   z/Function 'sum' accepts 1 arguments but 2 passedr<   )r   hash_sumNrW   zis a hash aggregate function)r   r%   r   r&   r5   rP   rQ   r   r   rN   ScalarAggregateOptionsr   r   r>   r?   rC   )r   r*   r+   r   	aggr_optstargetrE   s          r   test_aggregate_scalarr^      s   $K!57R6S!T!TUU&  D ]]__F=7)++++'?$$&&1#---- Hc<<<())E$
ub/5AAA7	KL I $N$:5$A$ABBK++&  D ]]__F=7)++++'?$$&&4&0000 c

AuQxx#sqcJ 2 2(65$*H)IJJ	(;{I>>?
 
 }"wi////g((**qc11111 %Sz5$&H%IJJI$	{;	::; D 
K
 
 
   MMOO               %&F%GHHI$	{;	::; D 
z)G	H	H	H  MMOO                 s$   I--I14I1K))K-0K-c                  t   t          j        g dg dd          } t          |           }t          d|          }t	          dgdg          }t          j        |t          d	|          g          }|                                }t          j        d
dgddgd          }|                    |          sJ t	          ddt          j	        d          dfgdg          }t          j        |t          d	|          g          }|                                }t          j        d
dgddgd          }|                    |          sJ t	          dgt          d          g          }t          j        |t          d	|          g          }|                                }|                    |          sJ t	          dgdg          }t          j        |t          d	|          g          }t          j        t                    5  |                                }d d d            d S # 1 swxY w Y   d S )NrX   )foobarr`   r   r   r   )r   
hash_countNcount(a)r   )keysrU   r`   ra   r   )r   rc   r   rb   allrc   r   rV   )r   r   r   r   r   r%   r&   r'   rN   CountOptionsr   r>   r?   rC   )	r   r   r   r\   r*   r+   r9   expected_allrE   s	            r   test_aggregate_hashrh      s   H<<<.C.C.CDDEEE'..J~zBBBL %	./se= = =I$k+y99&  D ]]__Fxuen1a&AABBH==""""" %
|R_U33Z	@A  I $k+y99&  D ]]__F85%.q!fEEFFL==&&&&& %	./uSzzl  I $k+y99&  D ]]__F==""""" %&A%B#OOOI$k+y99&  D 
z	"	"  MMOO                 s   H--H14H1c                  z   t          j        g dg dd          } t          dt          |                     }t	          dg          }t          j        |t          d|          g          }|                                }t          j        g dg dd          }|                    |          sJ t	          t          d	          d
fg          }t          j        |t          d|          g          }|                                }t          j        g dg dd          }|                    |          sJ t	          dgd          }t          j        |t          d|          g          }|                                }t          j        g dg dd          }|                    |          sJ t	          g           }t          j        |t          d|          g          }t          j
        t          d          5  |                                }d d d            n# 1 swxY w Y   t          j
        t          d          5  t	          dg          }d d d            n# 1 swxY w Y   t          j
        t          d          5  t	          dgd          }d d d            d S # 1 swxY w Y   d S )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   rl   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_byrr      sw   H<<<ooo>>??E~/Ee/L/LMML!#5"677H$lK
H4U4U%VWWD]]__FxlllAABBH=="""""!E#JJ#=">??H$lK
H4U4U%VWWD]]__FxlllAABBH=="""""!#4"5jQQQH$lK
H4U4U%VWWD]]__FxlllAABBH==""""" ""%%H$lK
H4U4U%VWWD	M
 
 
   MMOO              
 
z)S	T	T	T 6 6 34556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 
z)R	S	S	S M M 23GLLLM M M M M M M M M M M M M M M M M Ms6   H''H+.H+I**I.1I.J00J47J4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          }|                                }t          j        ddgddgddgddggg d          }|                    |          sJ t          d	          d	gt          d	          gfD ]S}t	          d||
          }t          d|||g          }|                                }|                    |          sJ Tt	          dd	d	
          }t          d|||g          }|                                }t          j        g dg dg dg dgg d          }|                    d                              |          sJ t	          dd	d	dd          }t          d|||g          }|                                }t          j        g dg dg dg dgg d          }|                    d                              |          sJ t	          dd	d	d	dgt          d          g          }t          d|||g          }|                                }t          j        g dg dg dgg d          }|                    d                              |          sJ d S )Nr   r   )keyr   r   r   r   r   r   )rt   r   innerrt   )	left_keys
right_keyshashjoinr#   r   r   r   r   r   )rt   r   rt   r   rP   z
left outer)Nr   r   )Nr   r   r   _left_right)rw   rx   output_suffix_for_leftoutput_suffix_for_right)key_leftr   	key_rightr   r   )rw   rx   left_outputright_output)rt   r   r   )	r   r   r   r   r
   r&   r'   r   sort_by)	leftleft_sourcerightright_source	join_optsjoinedr+   r9   rd   s	            r   test_hash_joinr     s   8IIIIII6677Dn6LT6R6RSSSKHYYYYYY7788E~7Me7T7TUUUL $GuOOOII{L.IK K KF__Fx
Q!Q!Q!Q(&&&( ( (H =="""""uwu7 ' ''4DQQQ		;2MO O O""}}X&&&&&& $%9 9 9II{L.IK K KF__Fx	III|||\\\:&&&  H >>#%%h///// $%&J J JI I{L.IK K KF__Fx	III|||\\\:111  H >>#%%h///// $%CLc

|= = =I I{L.IK K KF__Fx	III|||,  H >>#%%h///////r    c            	         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          }|                                }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 ]Z}t          d
          d
fD ]F}	t	          |	||	|d          }t          d|||g          }|                                }||k    sJ G[d S )Nr   )r   r   r   r   )rt   tsr   r   r   ru   )r   r   r   )rt   r   r   r   rt   r   )left_onleft_byright_onright_by	toleranceasofjoinr#   )Nr   N)rt   r   r   r   rz   )r   r   r   r   r   r&   r   )
r   r   r   r   r   r   r+   r9   byons
             r   test_asof_joinr   Z  s   8IIIYYYYYYGGHHDn6LT6R6RSSSKHYYYiiiiiiHHIIE~7Me7T7TUUUL $ug  I
 I{L.I  F __Fx	IIIyyy///:%%%' ' 'H XU||eWuU||n5 
& 
&;;% 		& 		&B+Bb  I
 !I{L6QS S 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	        g dk    sJ |
                    d	d
g                              |          sJ t          |t          d	          dk              }t          d|          }|                                j        dk    sJ t          |t          d	          dk              }t          d|          }|                                j        dk    sJ t          |dt          j        t          d	          d          i          }t          d|          }|                                }|d	                                         g dk    sJ t          j        |d
                                                                                   sJ d S )Nr   r   r   datasetparquet)formatscan)r   r   __fragment_index__batch_index__last_in_fragment
__filenamer   r   r   )r"   r   r   r   rL   r   )columns)r   r   dswrite_datasetr   r   r   r&   r5   rP   selectr'   r   num_rowsrN   rO   rQ   re   is_nullas_py)tempdirr   r   r*   r+   	scan_optss         r   	test_scanr   |  s   H9999995566EUGi/	BBBBj9,Y???Gvw7788D]]__F= # # #     ==#s$$++E22222  c

Q???Ivy))D==??#q((((c

Q???Ivy))D==??#q((((  $E#JJPQ8R8R1STTTIvy))D]]__F#;  ""iii////6&+%%''((..0000000r    )&r>   pyarrowr   pyarrow.computecomputerN   r   pyarrow.aceror   r   r   r   r   r	   r
   r   ImportErrorpyarrow.datasetr   r   r   markacero
pytestmarkfixturer   r-   r2   r:   rF   rI   rS   r^   rh   rr   r   r   r    r    r   <module>r      s"  $            ! ! ! ! ! !		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	  	 	 	D	      -------   	BBB [
   , , ,*3 3 3# # #	 	 	        @0 0 0f+ + +\"M "M "MJ;0 ;0 ;0|& & &D  1  1  1  1  1s   + 33A AA