o
    ;Di8                     @   s   d dl mZmZmZ d dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZmZmZmZmZ dd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Z d'd( Z!d)d* Z"d+d, Z#dS )-    )absolute_importprint_functiondivisionN)OrderedDict)ieq)strjoin)	rowreduce	aggregatemergeduplicatesConflictfoldc                  C   2   d} dd }t | d|ddgd}d}t|| d S )Nfoobar)a   )r      )b   )r      )r   	   c   c                 S      | t dd |D gS )Nc                 s       | ]}|d  V  qdS )r   N ).0rowr   r   \/var/www/Datamplify/venv/lib/python3.10/site-packages/petl/test/transform/test_reductions.py	<genexpr>       z1test_rowreduce.<locals>.sumbar.<locals>.<genexpr>sumkeyrowsr   r   r!   sumbar      ztest_rowreduce.<locals>.sumbarr   barsumr'   reducerheaderr   r+   r   
   )r      r   r   r   table1r)   table2expect2r   r   r!   test_rowreduce      r9   c                  C   r   )Nr   c                 S   r   )Nc                 S      g | ]}|d  qS )r   r   r   recr   r   r!   
<listcomp>/       zBtest_rowreduce_fieldnameaccess.<locals>.sumbar.<locals>.<listcomp>r$   r'   recordsr   r   r!   r)   .   r*   z.test_rowreduce_fieldnameaccess.<locals>.sumbarr   r+   r,   r/   r4   r5   r   r   r!   test_rowreduce_fieldnameaccess$   r:   rB   c                  C   r   )N)r   aar   rD   r   bbr   rG   r   rG   r   ccr   c                 S   r   )Nc                 s   r   )r   Nr   r<   r   r   r!   r"   E   r#   z6test_rowreduce_more.<locals>.sumbar.<locals>.<genexpr>r$   r@   r   r   r!   r)   D   r*   z#test_rowreduce_more.<locals>.sumbarr   r+   r,   )r0   )rD   r2   )rG   r3   rJ   r4   r5   r   r   r!   test_rowreduce_more:   r:   rL   c                  C   s.   d} d}dd }t | d|dd}t|| d S )Nr   c                 S   s   | dd |D fS )Nc                 S   r;   )r   r   )r   rr   r   r!   r>   S   r?   z:test_rowreduce_empty.<locals>.<lambda>.<locals>.<listcomp>r   r&   r   r   r!   <lambda>S   s    z&test_rowreduce_empty.<locals>.<lambda>r   r   r,   r4   )tableexpectr-   actualr   r   r!   test_rowreduce_emptyP   s   rS   c            	      C   s   d} t | dt}d}t|| t|| t | dtd}d}t|| t|| t | dtdd}d	d
ddgfd
ddgfddddgfdddgfdddgff}t|| t|| t | dtdd}d}t|| t|| d S )Nr   r   baz)r   r   T)r   r   Fr   r   T)r   r   F)r   r   F)r   r   Tr   )r   valuer   r   r   r   r   r   r   )rX   r1   )r      r   r   r   rV   r'   aggregationrY   r   r   rY   r   r   r   Tr   r   Fr   r   r   Tr   Fr   r   Fr   r   r   Tnrowsfield))r   rh   rZ   r[   r\   r	   lenr   r%   list	r6   r7   r8   table3expect3table4expect4table5expect5r   r   r!   test_aggregate_simpleY   s2   	










ru   c            	      C   s   d} t | d t}d}t|| t|| t | d td}d}t|| t|| t | d tdd}dg dff}t|| t|| t | d td	d
}d}t|| t|| d S )NrT   )rY      r   )rv   )   r^   r_   rv   rb   rc   rd   re   rf   rg   rh   ri   ))rh   rw   rk   rn   r   r   r!   !test_aggregate_simple_key_is_None   s*   	






r{   c               
   C   sd  d} t  }t|d< dtf|d< dtf|d< dtf|d< dtf|d< dtdf|d	< t| d
|}ddddddddgdfdddddg ddfddddddgdff}t|| t|| t| d
}t|d< dtf|d< dtf|d< dtf|d< d|d< dtdf|d	< t|| dtfddtfddtfddtfddtfd	dtdfg}t| d
|}t|| t|| d S )Nr   countr   minbarmaxbarr)   listbar, barsr   )r   r|   r}   r~   r)   r   r   r   r   r   r   r2   3, 7r   r   r   r3   r   r   r   2, 1, 9r   r   4	r   rl   minmaxr%   rm   r   r	   r   r6   aggregatorsr7   r8   ro   rq   r   r   r!   test_aggregate_multifield   sD   





r   c               	   C   s<  d} t  }t|d< dtf|d< dtf|d< dtf|d< dtf|d< dtdf|d	< t| d |}d
ddddg ddff}t|| t|| t| d }t|d< dtf|d< dtf|d< dtf|d< d|d< dtdf|d	< t|| dtfddtfddtfddtfddtfd	dtdfg}t| d |}t|| t|| d S )Nr   r|   r   r}   r~   r)   r   r   r   )r|   r}   r~   r)   r   r   rx   r   r      )r   r   r   r   r   r   z3, 7, 2, 1, 9, 4r   r   r   r   r!   %test_aggregate_multifield_key_is_None   s@   	




r   c               
   C   s  d} t  }dtf|d< dtf|d< dtf|d< d|d< dtdf|d< t| d	|}d
ddddddgdfddddg ddfdddddgdfdddddgdff}t|| t|| t| d	}dtf|d< dtf|d< dtf|d< d|d< dtdf|d< t|| d S )Nr   rC   rE   rF   rH   rI   rJ   )ddr   r   r}   r~   r)   r   r   r   r   )r   r}   r~   r)   r   r   rD   r   r   r2   r   rG   r   r   r3   r   r   rK   r   r   r   3r   r   r   r%   r   r	   r   r6   r   r7   r8   ro   r   r   r!   test_aggregate_more  s.   	


r   c                  C   s   d} t  }dtf|d< dtf|d< dtf|d< d|d< dtdf|d< t| d |}d	d
ddg ddff}t|| t|| t| d }dtf|d< dtf|d< dtf|d< d|d< dtdf|d< t|| d S )Nr   r   r}   r~   r)   r   r   r   )r}   r~   r)   r   r   r   r      )r   r   r   r   r   r   r   z3, 7, 2, 1, 9, 4, 3r   r   r   r   r!   test_aggregate_more_key_is_None8  s.   	


r   c                  C   s   d} ddddgfdddgfdd	d
dgfdddgfdddgff}t | dtd}t|| t|| t | dtdd}t|| t|| t | dd}dtf|d< t|| t|| d S )NrT   ra   r   r   rb   r   rc   r   r   rd   re   r   rf   r   r   rg   r   r^   r_   r'   rY   r	   rm   r   rP   rQ   rR   r   r   r!   %test_aggregate_multiple_source_fieldsZ  s(   








r   c                  C   s   d} dg dff}t | d td}t|| t|| t | d tdd}t|| t|| t | d d}dtf|d< t|| t|| d S )NrT   rv   rz   r^   r_   r   rY   r   r   r   r   r!   1test_aggregate_multiple_source_fields_key_is_Noney  s    




r   c                  C   sL   d} t  }dtf|d< dtf|d< dtf|d< t| d|}d}t|| d S )NrM   r   r}   r~   r)   r   ))r   r}   r~   r)   r   r   r   r%   r	   r   rP   r   rR   rQ   r   r   r!   test_aggregate_empty     r   c                  C   sL   d} t  }dtf|d< dtf|d< dtf|d< t| d |}d}t|| d S )NrM   r   r}   r~   r)   ))r}   r~   r)   r   r   r   r   r!    test_aggregate_empty_key_is_None  r   r   c                  C   sJ   d} t | dd d}ddtddgdfdd	d
tddgfdf}t|| d S )N)rU   )Ar   r   )B2N)Dxyz"@)r   N7.8TENg      E@)r   r   皙(@)r   r   Nr   )missingrU   r   r   r   )r   r   r   r   r   r   r   r   r
   r   r   )rP   resultexpectationr   r   r!   test_mergeduplicates  s   
r   c                  C   s"   d} d}t | dd}t|| d S )NrM   r   r   )r
   r   r   r   r   r!   test_mergeduplicates_empty  s   r   c                  C   sL   g dg dg dddgg} t | d}dddtddgdfg}t|| d S )	NrU   r   r   TrW   r   r   r   r   Tr   rP   rR   rQ   r   r   r!   test_mergeduplicates_shortrows  s   
r   c                  C   sb   g dg dg dg dg dg dg dg} t | dd}dddd	d
tddgfg}t|| d S )NrU   r   )r   r   F)r   r   N)r   r   T)r   r   Fr   r   r   r   TFr   r   r   r   r!    test_mergeduplicates_compoundkey  s   r   c                  C   s4   d} t | dtjddd}d}t|| t|| d S )N))idr|   )r   r   )r      )r   r   )r      r   r|   T)	presorted))r'   rY   )r   r   )r   r3   )r   operatoraddr   )t1t2rQ   r   r   r!   	test_fold  s
   
r   )$
__future__r   r   r   r   collectionsr   petl.test.helpersr   	petl.utilr   petl.transform.reductionsr   r	   r
   r   r   r9   rB   rL   rS   ru   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   <module>   s2    	1&50#"