o
    ;Di0                     @   s   d dl mZmZm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 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%S )&    )absolute_importprint_functiondivision)OrderedDict)assert_failonerror)ieq)fieldmaprowmap
rowmapmany)partialc                  C   s   d} t  }d|d< ddddf|d< d	d
d f|d< dd |d< t| |}d}t|| t|| t| }d|d< ddddf|d< d	dd f|d< d|d< t|| d}d}t||}t|| d S )Nidsexageheightweight   male   g333333?g      O@   female   gq=
ףp?g33333K@   r      {Gz?皙R@   r      HzG?gF@)   -   ffffff?g33333I@r   
subject_idr   MFr   r   genderr   c                 S      | d S N    vr0   r0   V/var/www/Datamplify/venv/lib/python3.10/site-packages/petl/test/transform/test_maps.py<lambda>       ztest_fieldmap.<locals>.<lambda>
age_monthsc                 S   s   | d | d d  S )Nr   r   r   r0   recr0   r0   r3   r4      s    bmir(   r,   r6   r9   r   r)      J}=@r   r*      綩`k>@r   r*      S@\{7@r!   r)      $iw9@)r$   r%   ,  V2k83@c                 S   r-   r.   r0   r1   r0   r0   r3   r4   '   r5   {weight} / {height}**2r   r   r   r   r    )r$   r%   r&   r'   )r;   r<   r?   rB   rE   )r$   r%   rH   Nr   r   r   )tablemappingsactualexpecttable2r0   r0   r3   test_fieldmap   s(   




rR   c                  C   sf   d} t  }d|d< ddddf|d< d	d
d f|d< dd |d< t| |}d}t|| t|| d S )Nr   r   r(   r   r)   r*   r+   r,   r   c                 S   r-   r.   r0   r1   r0   r0   r3   r4   G   r5   z-test_fieldmap_record_access.<locals>.<lambda>r6   c                 S   s   | j | jd  S Nr   )r   r   r7   r0   r0   r3   r4   H   s    r9   r:   rL   )rM   rN   rO   rP   r0   r0   r3   test_fieldmap_record_access<   s   

rT   c                  C   s>   d} d}t  }d|d< ddd f|d< t| |}t|| d S )N))foobar))rU   bazrU   rV   c                 S   r-   rS   r0   r1   r0   r0   r3   r4   Y   r5   z%test_fieldmap_empty.<locals>.<lambda>rW   rL   rM   rP   rN   rO   r0   r0   r3   test_fieldmap_emptyT      
rY   c                  C   s>   g } g }t  }d|d< ddd f|d< t| |}t|| d S )NrU   rV   c                 S   r-   rS   r0   r1   r0   r0   r3   r4   c   r5   z*test_fieldmap_headerless.<locals>.<lambda>rW   rL   rX   r0   r0   r3   test_fieldmap_headerless^   rZ   r[   c                  C   s0   d} dddd fi}d}t tt| ||d d S )N)rU   Ar   rV   rU   c                 S   s   |   S Nlowerr1   r0   r0   r3   r4   j   r5   z+test_fieldmap_failonerror.<locals>.<lambda>))rV   ar`   input_fnexpected_output)r   r   r   )input_mapper_expect_r0   r0   r3   test_fieldmap_failonerrorh   s   

rk   c                  C   ^   d} dd }t | |g dd}d}t|| t|| d}d}t ||g dd}t|| d S )	Nr   c                 S   N   ddd}| d | d |v r|| d  n| d | d d | d | d	 d  gS 
Nr)   r*   r+   r   r   r   r/   r!   r   r0   rowtransmfr0   r0   r3   	rowmapperz      

ztest_rowmap.<locals>.rowmapperr;   headerr:   rK   r;   r<   r?   rB   rE   r	   r   )rM   rr   rO   rP   rQ   r0   r0   r3   test_rowmapr      

rx   c                  C   s0   d} dd }t | |g dd}d}t|| d S )N)r   c                 S   rm   rn   r0   ro   r0   r0   r3   rr      rs   z$test_rowmap_empty.<locals>.rowmapperr;   rt   )r;   rw   rM   rr   rO   rP   r0   r0   r3   test_rowmap_empty   s
   r{   c                  C   s0   g } dd }t | |ddgd}g }t|| d S )Nc                 S   s   | S r`   r0   )rp   r0   r0   r3   rr      s   z)test_rowmap_headerless.<locals>.rowmapperr(   r,   rt   rw   rz   r0   r0   r3   test_rowmap_headerless   s
   r|   c                  C   ,   d} dd }d}t tt| |dd|d d S )Nr\   r]   r_   )Bc                 S      | d   gS Nr   ra   rr0   r0   r3   r4          z)test_rowmap_failonerror.<locals>.<lambda>r\   rc   )br\   rt   re   )r   r   r	   rh   mapperrj   r0   r0   r3   test_rowmap_failonerror   s   
r   c                  C   rl   )	Nr   c                 S   sN   ddd}| d | d |v r|| d  n| d | d d | d | d	 d
  gS )Nr)   r*   r+   r   r   r   r/   r   r   r   r0   r8   rq   r0   r0   r3   	recmapper   rs   z!test_recordmap.<locals>.recmapperr;   rt   r:   rK   rv   rw   )rM   r   rO   rP   rQ   r0   r0   r3   test_recordmap   ry   r   c                  C   :   d} dd }t | |g dd}d}t|| t|| d S )Nr   r   r   )r   r%   r   r   r   )r!   r   r"   r#   c                 s   st    ddd}| d d| d |v r|| d  n| d gV  | d d| d d	 gV  | d d
| d | d d  gV  d S )Nr)   r*   r+   r   r,   r   r6   r   r/   r9   r!   r   r0   ro   r0   r0   r3   rowgenerator      
$z%test_rowmapmany.<locals>.rowgeneratorr(   variablevaluert   r   )r   r,   r)   )r   r6   r=   )r   r9   r>   )r   r,   r*   )r   r6   r@   )r   r9   rA   )r   r,   r%   )r   r6   rC   )r   r9   rD   )r!   r,   r)   )r!   r6   rF   r
   r   rM   r   rO   rP   r0   r0   r3   test_rowmapmany      
r   c                  C   r}   )Nr~   c                 S   r   r   ra   r   r0   r0   r3   r4     r   z-test_rowmapmany_failonerror.<locals>.<lambda>r   r\   rt   re   )r   r   r
   r   r0   r0   r3   test_rowmapmany_failonerror  s   
r   c                  C   r   )Nr   c                 s   st    ddd}| d d| d |v r|| d  n| d gV  | d d| d d	 gV  | d d
| d | d d  gV  d S )Nr)   r*   r+   r   r,   r   r6   r   r/   r9   r   r   r   r0   r   r0   r0   r3   r     r   z(test_recordmapmany.<locals>.rowgeneratorr   rt   r   r   r   r0   r0   r3   test_recordmapmany  r   r   c                  C   s:   g } dd }t | |ddgd}g }t|| t|| d S )Nc                 s   s    | V  | V  d S r`   r0   r7   r0   r0   r3   	duplicate;  s   
z0test_recordmapmany_headerless.<locals>.duplicater(   r   rt   r   )rM   r   rO   rP   r0   r0   r3   test_recordmapmany_headerless8  s   
r   c                  C   s2   d} d}t | dd}d|d< d|d< t|| d S )	Nr   ))r(   r9   )r   r>   )r   rA   )r   rD   )r!   rG   )r$   rI   T)trustedr   r(   rJ   r9   )r   r   )rM   rP   rO   r0   r0   r3   test_fieldmap_untrustedE  s   r   N)
__future__r   r   r   collectionsr   petl.test.failonerrorr   petl.test.helpersr   petl.transform.mapsr   r	   r
   	functoolsr   rR   rT   rY   r[   rk   rx   r{   r|   r   r   r   r   r   r   r   r0   r0   r0   r3   <module>   s*    0


++ 
 