a
    oÝEb8’  ã                   @   sj   d dl Zd dlZd dlZd dlmZmZmZmZ d dl	m
Z G dd„ dƒZG dd„ dƒZG dd„ dƒZdS )	é    N)Ú	DataFrameÚlreshapeÚmeltÚwide_to_longc                   @   st  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	e
j ddgdgdeddddœddddœddddœdœƒfdgdgdeddddœddddœddddœdœƒfg¡dd „ ƒZd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Ze
j d-e ejd.d/d0d1�¡ejg d2¢d3d4�e g d5¢¡g¡d6d7„ ƒZd8d9„ Zd:d;„ Zd<d=„ Zd>d?„ Zd@dA„ ZdBdC„ ZdDdE„ ZdFdG„ Z dHS )IÚTestMeltc                 C   s˜   t  ¡ d d… | _| jd dk tj¡| jd< | jd dk tj¡| jd< d| _d| _tg d	¢g d
¢g d¢gƒ| _	t
dƒt
dƒg| j	_ddg| j	j_d S )Né
   ÚAr   Úid1ÚBÚid2ÚvarÚval)ç5ì÷Ä:ñ?çS°ÆÙtÄñ¿gKÔÔ²µÊ?)ç†U¼‘y$õ¿çê> ©Mœ×?g†K®âð¿)çiÿ¬Õé¿ç<Ú8b->µ?ghB“Ä’òë¿ÚABCÚabcÚCAPÚlow)ÚtmZmakeTimeDataFrameÚdfÚastypeÚnpZint64Úvar_nameÚ
value_namer   Údf1ÚlistÚcolumnsÚnames)ÚselfÚmethod© r$   ú^/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/reshape/test_melt.pyÚsetup_method   s    ýÿzTestMelt.setup_methodc                 C   s$   t | jƒ}|j ¡ ddgks J ‚d S )NÚvariableÚvalue)r   r   r    Útolist)r"   Úresultr$   r$   r%   Útest_top_level_method!   s    
zTestMelt.test_top_level_methodc                 C   sœ   t  | j ¡ t| jƒ¡ t  | jjddgddgd�t| jddgddgd�¡ t  | jj| j| jd�t| j| j| jd�¡ t  | jjdd�t| jdd�¡ d S )	Nr	   r   r   r
   ©Úid_varsÚ
value_vars©r   r   r   ©Ú	col_level)r   Úassert_frame_equalr   r   r   r   r   )r"   r$   r$   r%   Útest_method_signatures%   s    þþzTestMelt.test_method_signaturesc                 C   sr   | j  ¡ }|j ¡ ddgks J ‚| j jdgd�}|j ¡ g d¢ksFJ ‚| j jddgd�}|j ¡ g d¢ksnJ ‚d S )Nr'   r(   r	   ©r-   )r	   r'   r(   r   ©r	   r   r'   r(   )r   r   r    r)   )r"   r*   Zresult1Zresult2r$   r$   r%   Útest_default_col_names4   s    
zTestMelt.test_default_col_namesc                 C   sª   | j jddgdd�}t|ƒdks$J ‚| j jddgddgd�}t| j d  ¡ d | j d  ¡ d dgd dgd  | j d  ¡ | j d  ¡  dœg d¢d	�}t ||¡ d S )
Nr	   r   r   r,   r   r
   é   r5   ©r    )r   r   Úlenr   r)   r   r2   )r"   Zresult3Zresult4Z	expected4r$   r$   r%   Útest_value_vars>   s    üù	zTestMelt.test_value_varsc                 C   s˜   t | jd  ¡ d | jd  ¡ d dgd dgd  | jd  ¡ | jd  ¡  dœg d¢d�}tttjfD ](}| jjddg|d	ƒd
�}t 	||¡ qjd S )Nr	   r7   r   r   r   r
   r5   r8   ©r   r
   r,   )
r   r   r)   Útupler   r   Úarrayr   r   r2   )r"   ÚexpectedÚtype_r*   r$   r$   r%   Útest_value_vars_typesN   s    üù
zTestMelt.test_value_vars_typesc                 C   sb   t | jd dgt| jƒ dgt| jƒ | jd dœg d¢d�}| jjdgdgd�}t ||¡ d S )N©r   Úar
   Úb©r
   rC   )rA   r   r   r(   r8   r,   )r   r   r9   r   r   r2   )r"   r>   r*   r$   r$   r%   Útest_vars_work_with_multiindex^   s    üù
z'TestMelt.test_vars_work_with_multiindexz(id_vars, value_vars, col_level, expectedr   r
   r   r   r   r   ©r   é   r7   r   r   r   )r   r   r(   rB   rC   rG   )rB   r   r(   c                 C   s"   | j j|||d�}t ||¡ d S )Nr0   )r   r   r   r2   )r"   r-   r.   r1   r>   r*   r$   r$   r%   Ú%test_single_vars_work_with_multiindexl   s     z.TestMelt.test_single_vars_work_with_multiindexc              	   C   sz   d}|g}d}|g}d}||f||f||ffD ]F\}}t jt|d��  | jj||d� W d   ƒ q.1 sj0    Y  q.d S )NrA   rD   zF(id|value)_vars must be a list of tuples when columns are a MultiIndex©Úmatchr,   )ÚpytestÚraisesÚ
ValueErrorr   r   )r"   Ztuple_aZlist_aZtuple_bZlist_bÚmsgr-   r.   r$   r$   r%   Ú$test_tuple_vars_fail_with_multiindex�   s    ýz-TestMelt.test_tuple_vars_fail_with_multiindexc                 C   sB  | j j| jd�}|j ¡ ddgks&J ‚| j jdg| jd�}|j ¡ g d¢ksPJ ‚| j jddg| jd�}|j ¡ g d¢ks|J ‚| j jddgd	| jd
�}|j ¡ g d¢ksªJ ‚| j jddgd	dg| jd
�}td| j d  ¡ d d| j d  ¡ d | jd	gd dgd  d| j d	  ¡ | j d  ¡  idd| jdgd�}t ||¡ d S )N)r   r   r(   r	   )r-   r   )r	   r   r(   r   )r	   r   r   r(   r   )r-   r.   r   r
   r7   r   r8   )r   r   r   r    r)   r   r   r2   )r"   Zresult5Zresult6Zresult7Zresult8Zresult9Z	expected9r$   r$   r%   Útest_custom_var_name¡   s,    ÿÿüù	zTestMelt.test_custom_var_namec                 C   sB  | j j| jd�}|j ¡ ddgks&J ‚| j jdg| jd�}|j ¡ g d¢ksPJ ‚| j jddg| jd�}|j ¡ g d¢ks|J ‚| j jddgd	| jd
�}|j ¡ g d¢ksªJ ‚| j jddgd	dg| jd
�}td| j d  ¡ d d| j d  ¡ d dd	gd dgd  | j| j d	  ¡ | j d  ¡  iddd| jgd�}t ||¡ d S )N)r   r'   r   r	   )r-   r   )r	   r'   r   r   )r	   r   r'   r   r   )r-   r.   r   r
   r7   r   r8   )r   r   r   r    r)   r   r   r2   )r"   Zresult10Zresult11Zresult12Zresult13Zresult14Z
expected14r$   r$   r%   Útest_custom_value_name¾   s,    ÿÿüù	zTestMelt.test_custom_value_namec           	      C   sŒ  | j j| j| jd�}|j ¡ ddgks*J ‚| j jdg| j| jd�}|j ¡ g d¢ksXJ ‚| j jddg| j| jd�}|j ¡ g d¢ksˆJ ‚| j jddgd	| j| jd
�}|j ¡ g d¢ksºJ ‚| j jddgd	dg| j| jd
�}td| j d  ¡ d d| j d  ¡ d | jd	gd dgd  | j| j d	  ¡ | j d  ¡  idd| j| jgd�}t ||¡ | j  	¡ }d|j_
| ¡ }|j ¡ ddgk�sˆJ ‚d S )Nr/   r   r   r	   ©r-   r   r   )r	   r   r   r   )r	   r   r   r   r   )r-   r.   r   r   r
   r7   r   r8   Úfoor(   )r   r   r   r   r    r)   r   r   r2   ÚcopyÚname)	r"   Zresult15Zresult16Zresult17Zresult18Zresult19Z
expected19Zdf20Zresult20r$   r$   r%   Útest_custom_var_and_value_nameÛ   sH    ÿÿüüüù	
z'TestMelt.test_custom_var_and_value_namec                 C   sL   | j jdd�}| j jdd�}|j ¡ ddgks2J ‚|j ¡ ddgksHJ ‚d S )Nr   r0   r   r(   ©r   r   r    r)   )r"   Zres1Zres2r$   r$   r%   Útest_col_level  s    zTestMelt.test_col_levelc                 C   s$   | j  ¡ }|j ¡ g d¢ks J ‚d S )N)r   r   r(   rW   )r"   Úresr$   r$   r%   Útest_multiindex  s    
zTestMelt.test_multiindexÚcolZ2010é   z
US/Pacific)ZperiodsÚtz)rB   rC   ÚcrB   ÚdÚcategory)Údtype)r   rG   r   r   r   c                 C   s¢   t tdƒ|g d¢|dœƒ}tjt g d¢¡|gdd�}t|ddgdd	d
�}t ttdƒƒd tj|gd dd�dgd dgd  |dœƒ}g d¢|_t 	||¡ d S )Nr\   )rG   r   r   r   r   )Úklassr[   Úattr1Úattr2T©Zignore_indexrb   r[   Ú	attributer(   rR   r7   rc   rd   ©r   rG   r7   é   )rb   r[   rf   r(   )
r   ÚrangeÚpdÚconcatÚSeriesr   r   r    r   r2   )r"   r[   r   Zexpected_valuer*   r>   r$   r$   r%   Útest_pandas_dtypes  s     
ÿÿüÿ
zTestMelt.test_pandas_dtypesc                 C   s^   t ddgt ddg¡dœƒ}t|dgdgƒ}t t ddg¡ddgddgdœƒ}t ||¡ d S )	NrG   r7   ÚXÚYr;   r
   r   )r
   r'   r(   )r   rj   ZCategoricalr   r   r2   )r"   Údatar*   r>   r$   r$   r%   Útest_preserve_category.  s    ÿzTestMelt.test_preserve_categoryc                 C   s¸  t tj dd¡tdƒd�}d}tjt|jddd�d	��$ | 	d
dgddg¡ W d   ƒ n1 s`0    Y  tjt|jddd�d	��$ | 	ddgddg¡ W d   ƒ n1 s¬0    Y  tjt|jddd�d	��$ | 	g d¢ddg¡ W d   ƒ n1 sø0    Y  | 
¡ }tdƒtdƒg|_tjt|jddd�d	��  | 	dgdg¡ W d   ƒ n1 �s\0    Y  tjt|jddd�d	��$ |j	dgdgdd� W d   ƒ n1 �sª0    Y  d S )Nr\   é   Úabcdr8   z=The following '{Var}' are not present in the DataFrame: {Col}r.   z\['C'\])ZVarZColrI   rB   rC   ÚCr_   r-   z\['A'\]r   r^   z\['not_here', 'or_there'\])rB   rC   Znot_hereZor_thereÚABCDz\['E'\])ÚErB   rD   z\['F'\]ÚFr   r0   )r   r   ÚrandomÚrandnr   rK   rL   ÚKeyErrorÚformatr   rT   r    )r"   r   rN   Zmultir$   r$   r%   Ú test_melt_missing_columns_raises8  s*    ÿ22þ20ÿz)TestMelt.test_melt_missing_columns_raisesc                 C   sf   t dgdgdgdgdœƒ}t|ddgdd	gd
�}t dgd dgd tdƒddgdœƒ}t ||¡ d S )NrS   ÚbarrG   r7   )r   rB   rC   r_   r   rB   rC   r_   r,   Zbd)r   rB   r'   r(   )r   r   r   r   r2   ©r"   r   r*   r>   r$   r$   r%   Útest_melt_mixed_int_str_id_vars]  s     ÿz(TestMelt.test_melt_mixed_int_str_id_varsc                 C   sH   t dgdgdœƒ}t|ddgd�}t ddgddgdœƒ}t ||¡ d S )NrS   r}   )r   rB   r   rB   )r.   ©r'   r(   ©r   r   r   r2   r~   r$   r$   r%   Ú"test_melt_mixed_int_str_value_varsf  s    z+TestMelt.test_melt_mixed_int_str_value_varsc                 C   sR   t dgdgdœdgd�}t|dd�}t dd	gddgd
œddgd�}t ||¡ d S )Nr   rG   ©rS   r}   Úfirst©ÚindexFre   rS   r}   r€   r�   r~   r$   r$   r%   Útest_ignore_indexm  s    ÿzTestMelt.test_ignore_indexc                 C   s�   t jjddgddgd�}tddgdd	gd
œ|d�}t|dd�}t jjddgd ddgd�}tdgd dgd  g d¢dœ|d�}t ||¡ d S )N)r„   Úsecond)r„   ÚthirdÚbazZfoobar)r!   r   rG   r7   rh   rƒ   r…   Fre   rS   r}   rg   r€   )rj   Z
MultiIndexÚfrom_tuplesr   r   r   r2   ©r"   r†   r   r*   Zexpected_indexr>   r$   r$   r%   Útest_ignore_multiindexv  s    ÿÿþzTestMelt.test_ignore_multiindexc                 C   s|   t jddgddd�}tddgdd	gd
œ|d�}t|dd�}t jddgd ddd�}tg d¢g d¢dœ|d�}t ||¡ d S )NrS   r}   r`   rŠ   )ra   rU   r   rG   r7   rh   )ÚxÚyr…   Fre   )rŽ   rŽ   r�   r�   rg   r€   )rj   ÚIndexr   r   r   r2   rŒ   r$   r$   r%   Útest_ignore_index_name_and_typeˆ  s    þz(TestMelt.test_ignore_index_name_and_typec                 C   sT   t g d¢gg d¢d�}|jdgdgd�}t g d¢g d¢gg d	¢d�}t ||¡ d S )
N)Úidr7   rh   )rB   rC   rC   r8   rB   rC   r,   )r’   rC   r7   )r’   rC   rh   )rB   r'   r(   r�   r~   r$   r$   r%   Ú test_melt_with_duplicate_columns–  s    ÿz)TestMelt.test_melt_with_duplicate_columnsN)!Ú__name__Ú
__module__Ú__qualname__r&   r+   r3   r6   r:   r@   rE   rK   ÚmarkZparametrizer   rH   rO   rP   rQ   rV   rX   rZ   rj   rl   Z
date_rangerm   rq   r|   r   r‚   r‡   r�   r‘   r“   r$   r$   r$   r%   r      sl   



ýÿü


ýÿüóþ
-ýþ

%		r   c                   @   s   e Zd Zdd„ ZdS )ÚTestLreshapec                 C   s   g d¢g d¢g d¢g d¢g d¢dt jddd	gd
t jt jddgg d¢dt jdddgdt jt jddgdœ
}t|ƒ}dd„ tddƒD ƒdd„ tddƒD ƒdœ}t||ƒ}g d¢g d¢g d¢g d¢g d ¢g d!¢d"œ}t||jd#�}t ||¡ t||d$d%�}g d&¢g d'¢g d(¢g d)¢d*d+d,d-d.dt jddd	d
t jt jddgd/dd0d1d2dt jddddt jt jddgd"œ}t||jd#�}t ||¡ t t	¡�  t||d$d3d4�}W d   ƒ n1 �sª0    Y  d5d„ tdd6ƒD ƒd7d„ tddƒD ƒdœ}d8}t
jt|d9�� t||ƒ W d   ƒ n1 �s0    Y  d S ):N)Ú	08jan2009Ú	20dec2008Ú	30dec2008Ú	21dec2008Ú	11jan2009)éæ  éå  é®  éC  é%  )ée   éf   ég   éh   éi   )ÚMaleÚFemaler©   r©   r©   )r�   Ú	22dec2008Ú	04jan2009Ú	29dec2008Ú	20jan2009Ú	21jan2009Ú	22jan2009Ú	31dec2008Ú	03feb2009Ú	05feb2009Ú	02jan2009Ú	15feb2009)i  i
  i  iâ  iÒ  ç     lŸ@ç     ��@ç     ª@ç     ß±@ç     ê¡@ç     bª@ç     Å²@)
ÚbirthdtÚbirthwtr’   ÚsexZvisitdt1Zvisitdt2Zvisitdt3Zwt1Zwt2Zwt3c                 S   s   g | ]}d |d›�‘qS ©Úvisitdtr_   r$   ©Ú.0Úir$   r$   r%   Ú
<listcomp>¾  ó    z+TestLreshape.test_pairs.<locals>.<listcomp>rG   rr   c                 S   s   g | ]}d |d›�‘qS ©Úwtr_   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¤   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·   ç     4˜@ç     Ä©@ç     Ò°@rµ   r¶   r·   r¸   r¹   rº   r»   )r¼   r½   r’   r¾   rÀ   rÇ   r8   F)Údropna)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§   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Ë   rS   )rÌ   Úlabelc                 S   s   g | ]}d |d›�‘qS r¿   r$   rÁ   r$   r$   r%   rÄ     rÅ   rh   c                 S   s   g | ]}d |d›�‘qS rÆ   r$   rÁ   r$   r$   r%   rÄ   €  rÅ   z$All column lists must be same lengthrI   )r   Únanr   ri   r   r    r   r2   Úassert_produces_warningÚFutureWarningrK   rL   rM   )r"   rp   r   Úspecr*   Úexp_dataÚexprN   r$   r$   r%   Ú
test_pairs¡  s’    êþ
ÆIññªh0þzTestLreshape.test_pairsN)r”   r•   r–   rÔ   r$   r$   r$   r%   r˜      s   r˜   c                   @   sœ   e Z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 )&ÚTestWideToLongc              	   C   sÒ   t j d¡ t j d¡}tddddœddd	dœd
dddœddddœtttdƒ|ƒƒdœƒ}|j|d< | 	¡ | 	¡  g d¢g d¢g d¢g d¢dœ}t|ƒ}| 
ddg¡g d¢ }t|ddgddd�}t ||¡ d S )Né{   rh   rB   rC   r^   rF   r_   ÚeÚfç      @ç333333ó?çffffffæ?çš™™™™™	@çÍÌÌÌÌÌô?çš™™™™™¹?)ZA1970ZA1980ZB1970ZB1980rn   r’   ©rB   rC   r^   r_   r×   rØ   ©rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   ©é²  râ   râ   é¼  rã   rã   ©r   rG   r7   r   rG   r7   ©rn   r   r
   Úyearr’   ræ   ©rn   r   r
   r   r
   ©rÃ   Új©r   rx   Úseedry   r   ÚdictÚzipri   r†   r)   Ú	set_indexr   r   r2   ©r"   rŽ   r   rÒ   r>   r*   r$   r$   r%   Útest_simpleˆ  s*    



ûÿ	
ûzTestWideToLong.test_simplec                 C   sJ   t g d¢g d¢gƒ}g d¢|_ddg}t||ddd� |ddgksFJ ‚d S )	N)r   rG   r7   rh   é   )rr   r\   é   é   é	   )r’   Zinc1Zinc2Zedu1Zedu2ÚincÚedur’   Úagerè   )r   r    r   )r"   r   Zstubsr$   r$   r%   Ú
test_stubs¡  s
    
zTestWideToLong.test_stubsc              	   C   sÔ   t j d¡ t j d¡}tddddœddd	dœd
dddœddddœtttdƒ|ƒƒdœƒ}|j|d< | 	¡ | 	¡  g d¢g d¢g d¢g d¢dœ}t|ƒ}| 
ddg¡g d¢ }t|ddgdddd�}t ||¡ d S )NrÖ   rh   rB   rC   r^   rF   r_   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   )zA.1970zA.1980zB.1970zB.1980rn   r’   rß   rà   rá   rä   rå   ræ   rç   r   r
   Ú.©rÃ   ré   Úseprê   rï   r$   r$   r%   Útest_separating_character«  s*    



ûÿ	
ûz(TestWideToLong.test_separating_characterc              	   C   sÒ   t j d¡ t j d¡}tddddœddd	dœd
dddœddddœtttdƒ|ƒƒdœƒ}|j|d< | 	¡ | 	¡  g d¢g d¢g d¢g d¢dœ}t|ƒ}| 
ddg¡g d¢ }t|ddgddd�}t ||¡ d S )NrÖ   rh   rB   rC   r^   rF   r_   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   )zA(quarterly)1970zA(quarterly)1980zB(quarterly)1970zB(quarterly)1980rn   r’   rß   rà   rá   rä   )rn   úA(quarterly)úB(quarterly)ræ   r’   ræ   )rn   rý   rþ   rý   rþ   rè   rê   rï   r$   r$   r%   Útest_escapable_charactersÅ  s.    



ûÿ	
ûÿz(TestWideToLong.test_escapable_charactersc                 C   sš   t ddgddgddgddgd	œƒ}|j|d
< g d¢g d¢ddtjtjgg d¢g d¢dœ}t |ƒ}| d
dg¡g d¢ }t|ddgd
dd�}t ||¡ d S )Nç      ð?ç       @ç      @ç      @ç      @ç      @ÚX1ÚX2©ÚA2010ÚA2011ÚB2010rn   r’   ©r  r  r  r  ©r   r  r  r  )r   rG   r   rG   )éÚ  r  éÛ  r  )rn   r   r
   r’   ræ   ræ   rç   r   r
   rè   )r   r†   r   rÎ   rî   r   r   r2   ©r"   r   rÒ   r>   r*   r$   r$   r%   Útest_unbalancedà  s$    üÿ
ûzTestWideToLong.test_unbalancedc              
   C   sÂ   t g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢dœƒ}|j|d	< t g d
¢g d
¢g d¢g d¢g d¢g d¢g d¢dœƒ}| d	dg¡g d¢ }t|g d¢d	dd�}t |jdd�|jdd�¡ d S )N©Úa11Úa22Úa33©Úa21r  Úa23©Úb11Úb12Úb13©Úb21Úb22Úb23©rG   r7   rh   ©rr   r\   rò   ©é[   é\   é]   )ÚA11ÚA12ÚB11ÚB12ÚBB11ÚBB12ÚBBBXÚBBBZr’   ©r$  r%  r&  r$  r%  r&  ©r  r  r  r  r  r  ©r  r  r  r  r  r   ©rG   r7   rh   rr   r\   rò   rä   ©é   r4  r4  é   r5  r5  )r-  r.  r   r
   ÚBBr’   ræ   ræ   )r-  r.  r   r
   r6  ©r   r
   r6  rè   rG   ©Zaxis©r   r†   rî   r   r   r2   Ú
sort_index©r"   r   r>   r*   r$   r$   r%   Útest_character_overlap÷  s2    øÿ
ùÿz%TestWideToLong.test_character_overlapc              	   C   sº   d}t ddgddgddgdd	gd
œƒ}|j|d< dg g g g g g g dœ}t |ƒ ddi¡}| ddg¡g d¢ }|jjddgdd�|_t|ddgdd|d�}t |jdd�|jdd�¡ d S )Nznope!r   r  r  r  r  r  r  r  r  r’   Ú )rn   r	  r
  r  r’   ræ   r   r
   ræ   Úint)rn   r	  r
  r  r   r
   r   rG   ©Úlevelr   r
   rú   r8  ©	r   r†   r   rî   Z
set_levelsr   r   r2   r:  )r"   rû   r   rÒ   r>   r*   r$   r$   r%   Útest_invalid_separator  s2    üÿ
ø
ÿz%TestWideToLong.test_invalid_separatorc              
   C   sÂ   t g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢dœƒ}|j|d	< t g d
¢g d
¢g d¢g d¢g d¢g d¢g d¢dœƒ}| d	dg¡g d¢ }t|g d¢d	dd�}t |jdd�|jdd�¡ d S )Nr  r  r  r  r!  r"  r#  )r'  r(  r)  r*  r+  r,  ÚAratingÚArating_oldr’   r/  r0  r1  r2  rä   r3  )rC  rD  r   r
   r6  r’   ræ   ræ   )rC  rD  r   r
   r6  r7  rè   rG   r8  r9  r;  r$   r$   r%   Útest_num_string_disambiguation3  s6    øÿ
ùÿÿz-TestWideToLong.test_num_string_disambiguationc              	   C   s¬   t ddgddgddgddgd	œƒ}|j|d
< dg g g g g g g dœ}t |ƒ ddi¡}| d
dg¡}|jjddgdd�|_t|ddgd
dd�}t |jdd�|jdd�¡ d S )Nr   r  r  r  r  r  r  r  )ÚAoneÚAtwoÚBonern   r’   r=  )rn   rF  rG  rH  r’   ræ   r   r
   ræ   r>  r   rG   r?  r   r
   rè   r8  rA  r  r$   r$   r%   Útest_invalid_suffixtypeT  s,    üÿ
ø
z&TestWideToLong.test_invalid_suffixtypec                 C   s|   t g d¢g d¢g d¢g d¢dœƒ}t g d¢g d¢g d¢g d	¢d
œƒ}| g d¢¡dg }t|dddgdd�}t ||¡ d S )N)	rG   rG   rG   r7   r7   r7   rh   rh   rh   )	rG   r7   rh   rG   r7   rh   rG   r7   rh   )	çffffff@ç333333@çš™™™™™@r7   çÍÌÌÌÌÌü?çffffffþ?rL  çffffff@çÍÌÌÌÌÌ @)	ç333333@çffffff@rK  rÜ   rJ  ç333333@çffffff
@rQ  rK  )ÚfamidÚbirthZht1Zht2)rJ  rQ  rK  rR  rL  rK  r  rÜ   rM  rJ  rN  rS  rL  rT  rO  rQ  rP  rK  )rG   rG   rG   rG   rG   rG   r7   r7   r7   r7   r7   r7   rh   rh   rh   rh   rh   rh   )rG   rG   r7   r7   rh   rh   rG   rG   r7   r7   rh   rh   rG   rG   r7   r7   rh   rh   )rG   r7   rG   r7   rG   r7   rG   r7   rG   r7   rG   r7   rG   r7   rG   r7   rG   r7   )ÚhtrU  rV  r÷   )rU  rV  r÷   rW  rU  rV  r÷   rè   ©r   rî   r   r   r2   r;  r$   r$   r%   Útest_multiple_id_columnsq  s"    üÿéÿz'TestWideToLong.test_multiple_id_columnsc                 C   sf   t g d¢g d¢g d¢dœƒ}d}tjt|d��$ t|ddgdd	d
� W d   ƒ n1 sX0    Y  d S )N)rG   r7   rh   rr   r\   )rG   rG   rG   rG   rG   )ZA_A1ZB_B1rŽ   z3the id variables need to uniquely identify each rowrI   ZA_AZB_BrŽ   Úcolnamerè   ©r   rK   rL   rM   r   ©r"   r   rN   r$   r$   r%   Útest_non_unique_idvarsš  s    ÿz%TestWideToLong.test_non_unique_idvarsc                 C   sz   t g d¢g d¢g d¢g d¢g d¢dœƒ}t g d¢g d¢g d	¢g d
¢dœƒ ddg¡}t|ddgdddd�}t ||¡ d S )N)úCCH PounderúJohnny DeppúChristoph Waltz)úJoel David MooreúOrlando BloomúRory Kinnear)ç     @�@ç     ˆã@ç     |Å@)ç     @�@ç     ˆ³@ç     �x@)ÚAvatarúPirates of the CaribbeanÚSpectre)Zactor_1Zactor_2Zactor_fb_likes_1Zactor_fb_likes_2Útitle)r^  r_  r`  ra  rb  rc  )rd  re  rf  rg  rh  ri  )rG   rG   rG   r7   r7   r7   )rj  rk  rl  rj  rk  rl  )ÚactorÚactor_fb_likesÚnumrm  rm  rp  rn  ro  Ú_rú   rX  r;  r$   r$   r%   Útest_cast_j_int¤  s*    ûÿ
õÿëÿzTestWideToLong.test_cast_j_intc                 C   sl   t ddgddgddgddgd	œƒ}d
}tjt|d��$ t|ddgddd� W d   ƒ n1 s^0    Y  d S )Nr   r  r  r  r  r  r  r  )r	  r
  r  r   z,stubname can't be identical to a column namerI   r   r
   rZ  rè   r[  r\  r$   r$   r%   Útest_identical_stubnamesË  s    üÿz'TestWideToLong.test_identical_stubnamesc                 C   s‚   t ddgddgddgddgd	œƒ}t g d
¢g d¢ddtjtjgg d¢dœƒ}| ddg¡}t|ddgddddd�}t ||¡ d S )Nr   r  r  r  r  r  r  r  )Ztreatment_placeboZtreatment_testZresult_placebor   r  )Úplacebort  Útestru  r  ©r   rZ  r*   Ú	treatmentr   rZ  r*   rw  z[a-z]+rq  ©rÃ   ré   Úsuffixrû   ©r   r   rÎ   rî   r   r   r2   r;  r$   r$   r%   Útest_nonnumeric_suffixØ  s&    üÿüÿÿz%TestWideToLong.test_nonnumeric_suffixc                 C   s|   t ddgddgddgddgd	d
gdœƒ}t g d¢g d¢g d¢g d¢dœƒ ddg¡}t|ddgddddd�}t ||¡ d S )Nr  r  r   rô   r  r  r   r  r  r  )r   Úresult_1Z
result_fooZtreatment_1Ztreatment_foor  )Ú1r}  rS   rS   )ç        ç      "@r  r  r  rv  r   rZ  r*   rw  z.+rq  rx  rX  r;  r$   r$   r%   Útest_mixed_type_suffixï  s*    ûÿ	üÿùÿz%TestWideToLong.test_mixed_type_suffixc                 C   s¨   t ddgddgddgddgd	d
gdœƒ}t g d¢g d¢ddddtjtjtjtjgtjtjtjtjddddgdœƒ}| ddg¡}t|ddgddddd�}t ||¡ d S )Nr   r  r  r  r  r  r   rô   r  r  )ztreatment_1.1ztreatment_2.1z
result_1.2r|  r   )r  r  r  r  r  r  r  r  )rÚ   rÚ   r   r   çš™™™™™ñ?r�  rP  rP  r~  r  rv  r   rZ  r*   rw  z[0-9.]+rq  rx  rz  r;  r$   r$   r%   Útest_float_suffix  s(    ûÿ	üÿÿz TestWideToLong.test_float_suffixc              
   C   s�   ddddddœddd	d
ddœddddddœddddddœddddddœdœ}t  |¡}t|dgddgdd�}t|dddgdd�}t ||¡ d S )Nr   rG   r7   rh   rr   )r   rG   r7   rh   rr   gš™™™™™é?r~  g      Ð?r   gìQ¸…ëé?g®Gáz®ç?gìQ¸…ëá?g\�Âõ(\ï?g333333ã?g¤p=
×£è?g{®Gázä?g¤p=
×£à?gq=
×£på?gÃõ(\�ÂÕ?rÛ   )Únode_idr   ZPA0ZPA1ZPA3ZPArƒ  r   Útime)Z	stubnamesrÃ   ré   )r   Ú	from_dictr   r   r2   )r"   Z	wide_dataZwide_dfr>   r*   r$   r$   r%   Útest_col_substring_of_stubname  s    û
z-TestWideToLong.test_col_substring_of_stubnamec                 C   s‚   t tdƒtdddƒdœƒ}t g d¢g d¢g d¢gg d	¢d
�}t t¡�( |jdd�}t ||¡ W d   ƒ n1 st0    Y  d S )Nr   r   é   r7   )r[   r(   )r   r[   r   )r
   r[   r
   )rt   r[   rt   )r(   r'   r(   r8   r(   r4   )r   r   ri   r   rÏ   rÐ   r   r2   r;  r$   r$   r%   Útest_warn_of_column_name_value.  s    þz-TestWideToLong.test_warn_of_column_name_valueN)r”   r•   r–   rð   rø   rü   rÿ   r  r<  rB  rE  rI  rY  r]  rr  rs  r{  r€  r‚  r†  rˆ  r$   r$   r$   r%   rÕ   ‡  s$   
!)
'rÕ   )Únumpyr   rK   Zpandasrj   r   r   r   r   Zpandas._testingZ_testingr   r   r˜   rÕ   r$   r$   r$   r%   Ú<module>   s       h