o
    ;Di+                     @   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mZmZ d dl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S ),    )absolute_importprint_functiondivisionN)FieldSelectionError)assert_failonerror)ieq)convert
convertallconvertnumbersreplaceupdateformatinterpolate)partialc                  C   s   d} t | ddd }d}t|| t|| t | dd}|}t|| t | dddd	}d
}t|| t | dt}d}t|| t | dddd}	d}
t|
|	 d S )NfoobarbazA      B23.4r   37.8TDxyz      "@ENr   c                 S      |   S Nlowers r,   ]/var/www/Datamplify/venv/lib/python3.10/site-packages/petl/test/transform/test_conversions.py<lambda>       ztest_convert.<locals>.<lambda>r   )ar   r   )br   r   )r2   r   r   T)dr"   r#   )eNr)   r   r   BBr   r   )r5   r   r   )r5   r   r   Tr    r$   )r   r   r   )r   1r   r   r   )r!   r"   z9.0)r%   NoneZYr   r   r   )r:   r   r   )r;   r   r   )r;   r   r   Tr    r$   )r   r   str)table1table2expect2table3expect3table4expect4table5expect5table6expect6r,   r,   r-   test_convert   s"   




rJ   c                  C   s"   d} d}t | dt}t|| d S )N)r   r   r   )r   intr   tableexpectactualr,   r,   r-   test_convert_emptyF   s   rQ   c                  C   sF   d} t t t| dtD ]}qW d    d S 1 sw   Y  d S )Nr,   r   )pytestraisesr   r   rL   )rN   ir,   r,   r-   test_convert_headerlessM   s   "rU   c                  C   s   d } }t | }t|| d S )Nr,   r   r   rM   r,   r,   r-   &test_convert_headerless_no_conversionsT   s   rW   c                  C   s   d} t | ddd }d}t|| t|| t | dd}|}t|| t | dddd	}d
}t|| t | dt}t | dt}t | dt}	t | ttddt}
d}t|| t|| t||	 t||
 t | dddd}d}t|| d S )Nr   r   c                 S   r&   r'   r(   r*   r,   r,   r-   r.   d   r/   z&test_convert_indexes.<locals>.<lambda>r0   r)   r   r   r5   r6   )r   r   )r   r   )r   r   r      r7   r:   r;   r<   r=   )r   r   r>   listrange)r?   r@   rA   rB   rC   rD   rE   table5atable5btable5ctable5drG   rH   rI   r,   r,   r-   test_convert_indexesZ   s.   







r_   c                  C   s   d} t ttd}t| |dd}d}t|| t| dd}t |d< t|d< t|d	< d
}t|| t| }d|d< d}t|| t ttg}t| |dd}d}	t|	| t d tg}t| |dd}
d}t||
 d S )Nr   r   error)
errorvalue)r   r   r   g       @r   r   333333@r   rX   333333@T)r!   r`   r#   )r%   r`   errr   r   r   )r   rb   rc   re   )r!   rg   r#   )r%   rg   )r   r   r5   r6   )r   rb   )r   r   rd   )r   r   rf   Tr    r$   )r>   rL   floatr   r   )r?   
convertersrF   rG   rH   rI   table7expect7table8expect8table9expect9r,   r,   r-   test_fieldconvert   s.   	





rp   c                  C   sJ   d} t | t}d}t|| t|| d} t | dd }d}t|| d S )N)r   )r8   r   9)r   r8   7)r   )r   rX   	   )r   r      )r   rX      )r   r   r   c                 S   s   | d S Nr   r,   )xr,   r,   r-   r.      r/   z!test_convertall.<locals>.<lambda>)ru   )rv   rv   rv   )r	   rL   r   )r?   r@   rA   rO   r,   r,   r-   test_convertall   s   


ry   c                  C   s(   d} t | }d}t|| t|| d S )N)r   r   r   quux)r8   z3.0z9+3jaaa)r   z1.3z7+2jN)rz   )r   g      @y      "@      @r|   )r   g?y      @       @N)r
   r   r?   r@   rA   r,   r,   r-   test_convertnumbers   s
   
r~   c                  C   s,   d} ddd}t | d|}d}t|| d S )N)rK   )M   )F"   -8   malefemale)r   r   r   )rK   )r   r   )r   r   r   rV   )rN   transresultexpectationr,   r,   r-   test_convert_translate   s
   
r   c                  C   s*   d} d}t | ddd dd}t|| d S )NrK   r1   r   )r2   r   )rK   )r1   r   )r2   r   r   c                 S   s
   |j  S r'   )r   upper)vrowr,   r,   r-   r.        
 z'test_convert_with_row.<locals>.<lambda>T)pass_rowrV   rM   r,   r,   r-   test_convert_with_row  s   r   c                  C   s"   d} d}t | dd}t|| d S )N)rK   )z a r   )z b r   r   r   striprV   rM   r,   r,   r-   &test_convert_with_row_backwards_compat  s   r   c                  C   s`   d} d}t | ddd dd d}t|| t|| t | ddd d	d}t|| t|| d S )
Nr   rK   r   )r2   rv   r   c                 S      | d S rw   r,   r   r,   r,   r-   r.   6  r/   z$test_convert_where.<locals>.<lambda>c                 S   
   | j dkS Nr2   r   rr,   r,   r-   r.   6  r   wherec                 S   r   rw   r,   r   r,   r,   r-   r.   9  r/   {foo} == 'b'rV   tbl1rO   rP   r,   r,   r-   test_convert_where,  s   


r   c                  C   s(   d} ddi}d}t tt| ||d d S )N)r   )r   )r   r   r)   )r   )r1   r'   )input_fnexpected_output)r   r   r   )input_cvt_expect_r,   r,   r-   test_convert_failonerror>  s   

r   c                  C   s\   d} d}t | ddddd d}t|| t|| t | dddd	d}t|| t|| d S )
Nr   r   r   r   rv   c                 S   r   r   r   r   r,   r,   r-   r.   R  r   z$test_replace_where.<locals>.<lambda>r   r   r   r   r   r,   r,   r-   test_replace_whereH  s   


r   c                  C   s,   d} t | dd}d}t|| t|| d S )Nr   r   X)r   )r   r   r   )r   r   r   )r   r   r   T)r   r"   r#   )r   N)r   r   r}   r,   r,   r-   test_updateZ  s
   
r   c                  C   s@   dddgfdf} dddgfdg ff}t | dd g }t|| d S )NrK   r1   r2   )cNr   r   r   )r?   rO   rP   r,   r,   r-   test_replace_unhashablen  s   r   c                  C   ,   d} d}t | dd}t|| t|| d S )Nr   rK   )r1   01)r2   02r   z{0:02d})r   r   rM   r,   r,   r-   test_formatv  
   
r   c                  C   r   )Nr   r   r   z%02d)r   r   rM   r,   r,   r-   test_interpolate  r   r   )'
__future__r   r   r   rR   petl.errorsr   petl.test.failonerrorr   petl.test.helpersr   petl.transform.conversionsr   r	   r
   r   r   r   r   	functoolsr   rJ   rQ   rU   rW   r_   rp   ry   r~   r   r   r   r   r   r   r   r   r   r   r,   r,   r,   r-   <module>   s2    $8>D
