o
    ;DiR4                     @   sD  d dl mZmZmZ d dlm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 d dl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.d/ Z'd0d1 Z(d2d3 Z)d4d5 Z*d6d7 Z+d8d9 Z,d:d; Z-dS )<    )absolute_importprint_functiondivision)datetimeN)FieldSelectionError)ieq)meltrecast	transposepivotflatten	unflatten)splitcapturec                  C   sR   d} d}t | dd}t|| t | dd}t|| t | dddd}t|| d S )	N)idgenderage   F      M   )   r      )r   variablevaluer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   keyr   r   r    r(   variablefield
valuefieldr   r   tableexpectationresult r1   Y/var/www/Datamplify/venv/lib/python3.10/site-packages/petl/test/transform/test_reshape.pytest_melt_1   s   

r3   c                  C   sF   d} d}t | dd}t|| d}t | ddd}t| t|| d S )N)r   timeheightweightr      皙P@ffffff(@r   r   皙J@L1@)r   r        @A@"@)r   r5   r   r    r   r9   r6   r:   r   r9   r7   r;   r   r   r6   r=   r   r   r7   r>   r   r   r6   r?   )r   r   r7   r@   r   r5   r'   rA   rB   rD   rF   r6   r(   	variables)r   r   printr-   r1   r1   r2   test_melt_2)   s   
rL   c                  C   s"   d} d}t | dd}t|| d S )Nfoobarbaz)rO   r   r    rO   r'   r,   r.   expectactualr1   r1   r2   test_melt_emptyC      rV   c                  C   s"   g } g }t | dd}t|| d S )NrO   r'   r,   rS   r1   r1   r2   test_melt_headerlessJ   rW   rX   c                  C   s<   d} d}t | dd}t|| t | dddd}t|| d S )N)r   r   r   r   r   )   )r   r!   r"   r#   r$   r%   r   r'   r   r    r)   r,   r-   r1   r1   r2   test_melt_1_shortrowQ   s   
r[   c                  C   s>   d} d}t | dd}t|| d}t | ddd}t|| d S )N)r4   r8   r<   r   r   r?   )rZ      )rA   rB   rC   rD   rE   rF   rG   r'   rH   r6   rI   r,   r-   r1   r1   r2   test_melt_2_shortrowg   s   
r^   c                  C   sf   d} d}t | }t|| t | dd}t|| t | ddd}t|| t | dddd}t|| d S )	Nr   r&   r!   r#   r$   r"   r%   )r   r   r   r   r   r   )r   r   r   )r   r   r   r   r*   r   r(   r*   r    r)   r	   r   r-   r1   r1   r2   test_recast_1   s   


re   c                  C   s*   d} d}t | dddgid}t|| d S )Nr_   ))r   r   )r   r   )r   r   rY   r   r   r   rc   rd   r-   r1   r1   r2   test_recast_2   s   rf   c                     s   d} d}t | }t|| ddddgfddd	gfd
ddgff}t | dd}t|| d}t | ddtid}t|| d}t | ddtid}t|| d}dd   fdd}t | dd|ddid}t|| d S )N)rA   )r   r9   r7   r:   )r   r]   r7   皙K@)r   r   r7   r=   )r   r   r7   fffffE@)r   r   r7   r?   )r   r   r7   33333H@))r   r5   r7   )r   r9   r:   )r   r]   rg   )r   r   r=   )r   r   rh   r\   )r   r   ri   r   r7   r   r:   rg   r   r=   rh   r   r?   ri   r   r'   )rj   )r   r:   )r   r=   )r   ri   r7   )r(   reducers)rj   )r   rg   )r   rh   )r   r?   )rj   )r   gffffffN@)r   g      H@)r   gD@c                 S   s   t t| t|  S N)floatsumlen)valuesr1   r1   r2   mean   s   ztest_recast_3.<locals>.meanc                    s    fdd}|S )Nc                    s    | }t |}|S rl   )round)rp   v)rq   	precisionr1   r2   f   s   
z'test_recast_3.<locals>.meanf.<locals>.fr1   )rt   ru   rq   rt   r2   meanf   s   ztest_recast_3.<locals>.meanfrw   )r	   r   maxmin)r.   r/   r0   rx   r1   rv   r2   test_recast_3   s,   






r{   c                  C   s"   d} t | dd}d}t|| d S )N)r   r!   r$   r"   r%   r   r'   )r`   ra   )r   r   N)r   Nr   rd   )r.   r0   rT   r1   r1   r2   test_recast4   s   r|   c                  C   s   d} d}t | }t|| d S )NrR   ))rO   rd   rS   r1   r1   r2   test_recast_empty     r}   c                  C      g } g }t | }t|| d S rl   rd   rS   r1   r1   r2   test_recast_headerless
  r~   r   c               	   C   s   t  j} d| ddddf| ddddf| d	ddd
f| d	dddf| ddddf| dddd
ff}d| ddddf| d	ddd
f| dddd
ff}t|}t|| t|dd}t|| t|ddd}t|| t|dddd}t|| d S )Nr   r   )hourr   r   r   r   r   r   r   r   r   r`   r   rb   r   rc   r    r)   )r   nowreplacer	   r   )dtr.   r/   r0   r1   r1   r2   test_recast_date  s0   



r   c                  C   s2   d} d}t | ddd}t|ddd}t|| d S )	N))r   parad0parad1parad2)1123456)2234567))r   parasitaemiaday)r   r   0)r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   r   r   )r(   r+   r   z
parad(\d+))r   )r   r   r   r.   r/   step1step2r1   r1   r2   test_melt_and_capture0  s
   r   c                  C   s0   d} d}t | dd}t|ddd}t|| d S )N))r   r   r   r   tempd0tempd1tempd2)r   r   r   r   37.237.437.9)r   r   r   r   37.137.836.9))r   r    r   r   )r   r   parar   )r   r   r   r   )r   r   r   r   )r   r   tempr   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   r   r'   r   d)r   r   )r   r   r   r   r1   r1   r2   test_melt_and_splitC  s
   r   c                  C   s(   d} t | }d}t|| t|| d S )N)r   colour)r   blue)r   red)r   purple)   yellow)   orange))r   r   r   r   r   r   )r   r   r   r   r   r   r
   r   table1table2expect2r1   r1   r2   test_transpose\  s
   
r   c                  C   s   d} t | }d}t|| d S )N)r   ))r   )r   r   r   r1   r1   r2   test_transpose_emptyj  s   r   c                  C   s0   d} t | dddt}d}t|| t|| d S )N)regionr   styleunits)eastboyteer   )r   r   golfr]   )r   r   fancyr   )r   girlr   r   )r   r   r      )r   r   r      )westr   r   r   )r   r   r      )r   r   r   r   )r   r   r      )r   r   r   r   )r   r   r   r   r   r   r   ))r   r   r   )r   !      )r   #      r   rn   r   r   r1   r1   r2   
test_pivotr  s
   
r   c                  C   s&   d} t | dddt}d}t|| d S )N)r   r   r   r   ))r   r   r   r1   r1   r2   test_pivot_empty  s   r   c                  C   sJ   g } t t t| dddtD ]}qW d    d S 1 sw   Y  d S )Nr   r   r   )pytestraisesr   r   rn   )r   ir1   r1   r2   test_pivot_headerless  s   "r   c                  C   s(   d} d}t | }t|| t|| d S )N)rN   Ar   TCr   FBr   F)r   	   T)r   r   Tr   r   Fr   r   Fr   r   Tr   r   r   expect1actual1r1   r1   r2   test_flatten  s
   
r   c                  C   s   d} g }t | }t|| d S )NrM   r   r   r1   r1   r2   test_flatten_empty  s   r   c                  C   r   rl   r   r   r1   r1   r2   test_flatten_headerless  r~   r   c                  C   s,   d} d}t | dd}t|| t|| d S )N)lines)r   )r   )Tr   )r   F)r   )r   r   r   )r   f0f1f2r   r   r   )r   r   Nr   r   r   r   r   r1   r1   r2   test_unflatten  s
   
r   c                  C   s*   d} d}t | d}t|| t|| d S )N)r   r   Tr   r   Fr   r   Fr   r   r   r   r   )inptr   r   r1   r1   r2   test_unflatten_2  s
   

r   c                  C   s"   d} d}t | dd}t|| d S )N)r   )r   r   r   r   r   r1   r1   r2   test_unflatten_empty  s   r   ).
__future__r   r   r   r   r   petl.errorsr   petl.test.helpersr   petl.transform.reshaper   r	   r
   r   r   r   petl.transform.regexr   r   r3   rL   rV   rX   r[   r^   re   rf   r{   r|   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1   r1   r1   r2   <module>   sB     @