U
    ¾mœd÷”  ã                   @   sª   d dl Z 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 ejdd„ ƒZejdd„ ƒZejdd„ ƒZejd	d
„ ƒ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                  C   sD   t  ¡ d d… } | d dk tj¡| d< | d dk tj¡| d< | S )Né
   ÚAr   Úid1ÚBÚid2)ÚtmZmakeTimeDataFrameÚastypeÚnpÚint64©Úres© r   úW/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/reshape/test_melt.pyÚdf   s    r   c                  C   sB   t dddgdddgddd	ggƒ} td
ƒtdƒg| _ddg| j_| S )Nç5ì÷Ä:ñ?çS°ÆÙtÄñ¿gKÔÔ²µÊ?ç†U¼‘y$õ¿çê> ©Mœ×?g†K®âð¿çiÿ¬Õé¿ç<Ú8b->µ?ghB“Ä’òë¿ÚABCÚabcÚCAPÚlow)r   ÚlistÚcolumnsÚnamesr   r   r   r   Údf1   s    ýÿr!   c                   C   s   dS )NÚvarr   r   r   r   r   Úvar_name&   s    r#   c                   C   s   dS )NÚvalr   r   r   r   r   Ú
value_name+   s    r%   c                   @   sÞ  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	e
eejf¡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ej 	d d!d"ggd!gd"gd!d"gg¡d#d$„ ƒZd%d&„ Zd'd(„ Zd)d*„ Zej 	d+dd,g¡d-d.„ ƒZd/d0„ Zej 	d1e ejd2d3d4d5�¡ejddd6dd7gd8d9�e dddddg¡g¡d:d;„ ƒZd<d=„ Zd>d?„ Zd@dA„ ZdBdC„ ZdDdE„ Z dFdG„ Z!dHdI„ Z"dJdK„ Z#ej 	dLdMdNg¡dOdP„ ƒZ$dQS )RÚTestMeltc                 C   s"   t |ƒ}|j ¡ ddgkst‚d S )NÚvariableÚvalue©r   r   ÚtolistÚAssertionError)Úselfr   Úresultr   r   r   Útest_top_level_method1   s    zTestMelt.test_top_level_methodc                 C   s„   t  | ¡ t|ƒ¡ t  |jddgddgd�t|ddgddgd�¡ t  |j||d�t|||d�¡ t  |jdd�t|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_signatures5   s    þþzTestMelt.test_method_signaturesc                 C   sr   |  ¡ }|j ¡ ddgkst‚|j dgd�}|j ¡ dddgksDt‚|j ddgd�}|j ¡ ddddgksnt‚d S )Nr'   r(   r   )r0   r
   r)   )r,   r   r-   Zresult1Zresult2r   r   r   Útest_default_col_namesD   s    zTestMelt.test_default_col_namesc                 C   s¢   |j ddgdd�}t|ƒdks"t‚|j ddgddgd�}t|d  ¡ d |d  ¡ d dgd dgd  |d  ¡ |d  ¡  dœddd	d
gd�}t ||¡ d S )Nr   r
   r   r/   r   r	   é   ©r   r
   r'   r(   r'   r(   ©r   )r   Úlenr+   r   r*   r   r5   )r,   r   Zresult3Zresult4Z	expected4r   r   r   Útest_value_varsN   s    ü
ù	zTestMelt.test_value_varsÚtype_c                 C   s€   t |d  ¡ d |d  ¡ d dgd dgd  |d  ¡ |d  ¡  dœdddd	gd
�}|jddg|dƒd�}t ||¡ d S )Nr   r8   r
   r   r   r	   r9   r'   r(   r:   ©r   r	   r/   )r   r*   r   r   r5   )r,   r=   r   Úexpectedr-   r   r   r   Útest_value_vars_types^   s    ü
ù	zTestMelt.test_value_vars_typesc                 C   s\   t |d dgt|ƒ dgt|ƒ |d dœddddgd	�}|jdgdgd
�}t ||¡ d S )N©r   Úar	   Úb©r	   rC   )rA   r   r   r(   r   r   r(   r:   r/   )r   r;   r   r   r5   )r,   r!   r?   r-   r   r   r   Útest_vars_work_with_multiindexm   s    ü
ù
z'TestMelt.test_vars_work_with_multiindexz(id_vars, value_vars, col_level, expectedr   r	   r   r   r   r   ©r   é   r8   r   r   r   )r   r   r(   rB   rC   rG   )rB   r   r(   c                 C   s    |j |||d�}t ||¡ d S )Nr3   )r   r   r5   )r,   r0   r1   r4   r?   r!   r-   r   r   r   Ú%test_single_vars_work_with_multiindex{   s     z.TestMelt.test_single_vars_work_with_multiindexzid_vars, value_varsrA   rD   c              	   C   s0   d}t jt|d�� |j||d� W 5 Q R X d S )NzF(id|value)_vars must be a list of tuples when columns are a MultiIndex©Úmatchr/   )ÚpytestÚraisesÚ
ValueErrorr   )r,   r0   r1   r!   Úmsgr   r   r   Ú$test_tuple_vars_fail_with_multiindexž   s    z-TestMelt.test_tuple_vars_fail_with_multiindexc           	      C   s,  |j |d�}|j ¡ ddgks"t‚|j dg|d�}|j ¡ dddgksJt‚|j ddg|d�}|j ¡ ddddgksvt‚|j ddgd|d�}|j ¡ ddddgks¤t‚|j ddgdd	g|d�}td|d  ¡ d
 d|d  ¡ d
 |dgd d	gd  d|d  ¡ |d	  ¡  idd|dgd�}t ||¡ d S )N)r#   r"   r(   r   )r0   r#   r
   r   )r0   r1   r#   r	   r8   r   r:   ©r   r   r*   r+   r   r   r5   )	r,   r   r#   Zresult5Zresult6Zresult7Zresult8Zresult9Z	expected9r   r   r   Útest_custom_var_name®   s4      ÿ    ü
ù	zTestMelt.test_custom_var_namec           	      C   s,  |j |d�}|j ¡ ddgks"t‚|j dg|d�}|j ¡ dddgksJt‚|j ddg|d�}|j ¡ ddddgksvt‚|j ddgd|d�}|j ¡ ddddgks¤t‚|j ddgdd	g|d�}td|d  ¡ d
 d|d  ¡ d
 ddgd d	gd  ||d  ¡ |d	  ¡  iddd|gd�}t ||¡ d S )N)r%   r'   r$   r   ©r0   r%   r
   r   )r0   r1   r%   r	   r8   r   r:   rP   )	r,   r   r%   Zresult10Zresult11Zresult12Zresult13Zresult14Z
expected14r   r   r   Útest_custom_value_nameÉ   s<      ÿ  ÿ    ü
ù	zTestMelt.test_custom_value_namec                 C   sf  |j ||d�}|j ¡ ddgks$t‚|j dg||d�}|j ¡ dddgksNt‚|j ddg||d�}|j ¡ ddddgks|t‚|j ddgd||d�}|j ¡ ddddgks¬t‚|j ddgdd	g||d�}td|d  ¡ d
 d|d  ¡ d
 |dgd d	gd  ||d  ¡ |d	  ¡  idd||gd�}	t ||	¡ | ¡ }
d|
j_|
  ¡ }|j ¡ ddgk�sbt‚d S )Nr2   r"   r$   r   ©r0   r#   r%   r
   r   )r0   r1   r#   r%   r	   r8   r   r:   Úfoor(   )	r   r   r*   r+   r   r   r5   ÚcopyÚname)r,   r   r%   r#   Zresult15Zresult16Zresult17Zresult18Zresult19Z
expected19Zdf20Zresult20r   r   r   Útest_custom_var_and_value_nameæ   sP      ÿüü    ü
ù	z'TestMelt.test_custom_var_and_value_namer4   r   c                 C   s&   |j |d�}|j ¡ ddgks"t‚d S )Nr3   r   r(   r)   )r,   r4   r!   r   r   r   r   Útest_col_level  s    zTestMelt.test_col_levelc                 C   s$   |  ¡ }|j ¡ dddgks t‚d S )Nr   r   r(   r)   )r,   r!   r   r   r   r   Útest_multiindex  s    zTestMelt.test_multiindexÚcolZ2010é   z
US/Pacific)ZperiodsÚtzÚcÚdÚcategory©Údtypec                 C   s²   t tdƒ|dddddg|dœƒ}tjt dddddg¡|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œƒ}ddd	d
g|_t 	||¡ d S )Nr\   rG   r   )Úklassr[   Úattr1Úattr2T©Zignore_indexrc   r[   Ú	attributer(   rT   r8   rd   re   )r   rG   r8   é   )
r   ÚrangeÚpdÚconcatÚSeriesr   r   r   r   r5   )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   r8   ÚXÚYr>   r	   r   )r	   r'   r(   )r   rj   ZCategoricalr   r   r5   )r,   Údatar-   r?   r   r   r   Útest_preserve_category5  s    ÿzTestMelt.test_preserve_categoryc              	   C   sT  t tj dd¡tdƒd�}d}tjt|jddd�d	�� | 	d
dgddg¡ W 5 Q R X tjt|jddd�d	�� | 	ddgddg¡ W 5 Q R X tjt|jddd�d	�� | 	d
dddgddg¡ W 5 Q R X | 
¡ }tdƒtdƒg|_tjt|jddd�d	�� | 	dgdg¡ W 5 Q R X tjt|jddd�d	�� |j	dgdgdd� W 5 Q R X d S )Nr\   é   Úabcdr:   z=The following '{Var}' are not present in the DataFrame: {Col}r1   z\['C'\])ZVarZColrI   rB   rC   ÚCr_   r0   z\['A'\]r   r^   z\['not_here', 'or_there'\]Znot_hereZor_thereZABCDz\['E'\])ÚErB   rD   z\['F'\]ÚFr   r3   )r   r   ÚrandomÚrandnr   rK   rL   ÚKeyErrorÚformatr   rV   r   )r,   r   rN   Úmultir   r   r   Ú test_melt_missing_columns_raises?  s.     ÿþ" ÿ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 )NrU   ÚbarrG   r8   )r   rB   rC   r_   r   rB   rC   r_   r/   Zbd)r   rB   r'   r(   )r   r   r   r   r5   ©r,   r   r-   r?   r   r   r   Útest_melt_mixed_int_str_id_varsd  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 )NrU   r}   )r   rB   r   rB   )r1   ©r'   r(   ©r   r   r   r5   r~   r   r   r   Ú"test_melt_mixed_int_str_value_varsm  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   ©rU   r}   Úfirst©ÚindexFrf   rU   r}   r€   r�   r~   r   r   r   Útest_ignore_indext  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  dddd	gdœ|d�}t ||¡ d S )N)r„   Úsecond)r„   ÚthirdÚbazZfoobar)r    r   rG   r8   rh   rƒ   r…   Frf   rU   r}   r€   )rj   Z
MultiIndexÚfrom_tuplesr   r   r   r5   ©r,   r†   r   r-   Zexpected_indexr?   r   r   r   Útest_ignore_multiindex}  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ddddgdddd	gdœ|d�}t ||¡ d S )NrU   r}   r`   rŠ   )rb   rW   r   rG   r8   rh   )ÚxÚyr…   Frf   rŽ   r�   r€   )rj   ÚIndexr   r   r   r5   rŒ   r   r   r   Útest_ignore_index_name_and_type�  s    þz(TestMelt.test_ignore_index_name_and_typec                 C   s^   t dddggdddgd�}|jdgdgd�}t dddgdddggddd	gd�}t ||¡ d S )
NÚidr8   rh   rB   rC   r:   r/   r'   r(   r�   r~   r   r   r   Ú test_melt_with_duplicate_columns�  s     ÿz)TestMelt.test_melt_with_duplicate_columnsrb   ÚInt8ZInt64c                 C   sj   t tjddgdd�tjddg|d�dœƒ}| ¡ }t ddd	d	gtjddddg|d�d
œƒ}t ||¡ d S )NrG   r8   r”   ra   rh   rr   ©rB   rC   rB   rC   r€   )r   rj   rl   r   r   r5   )r,   rb   r   r-   r?   r   r   r   Útest_melt_ea_dtype¦  s    þÿ
þÿzTestMelt.test_melt_ea_dtypeN)%Ú__name__Ú
__module__Ú__qualname__r.   r6   r7   r<   rK   ÚmarkÚparametrizeÚtupler   r   Úarrayr@   rE   r   rH   rO   rQ   rS   rX   rY   rZ   rj   rl   Z
date_rangerm   rq   r|   r   r‚   r‡   r�   r‘   r“   r–   r   r   r   r   r&   0   s€   




ýÿü


ýÿüóþ
ýþ
*
ýþ

%			r&   c                   @   s   e Zd Zdd„ ZdS )ÚTestLreshapec                 C   sÒ  dddddgdddd	d
gdddddgdddddgdddddgdt jdddgdt jt jddgdddd d!g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||ƒ}ddddddddddddgdddd	d
ddd	d
dd	d
gddddddddddddgddddddddddddgddddddddddddgd0d$d1d2d3d"d#d$d%d&d'd(gd4œ}t||jd5�}t ||¡ t||d6d7�}dddddddddddddddgdddd	d
dddd	d
dddd	d
gdddddddddddddddgdddddddddddddddgddddddt jddddt jt jddgd0d$d1d2d3d"t jd#d$d%d&t jt jd'd(gd4œ}t||jd5�}t ||¡ d8d+„ td,d9ƒD ƒd:d+„ td,d-ƒD ƒd/œ}d;}tj	t
|d<�� t||ƒ W 5 Q R X d S )=NZ	08jan2009Z	20dec2008Z	30dec2008Z	21dec2008Z	11jan2009iæ  iå  i®  iC  i%  ée   éf   ég   éh   éi   ZMaleZFemaleZ	22dec2008Z	04jan2009Z	29dec2008Z	20jan2009Z	21jan2009Z	22jan2009Z	31dec2008Z	03feb2009Z	05feb2009Z	02jan2009Z	15feb2009i  i
  i  iâ  iÒ  g     lŸ@g     ��@g     ª@g     ß±@g     ê¡@g     bª@g     Å²@)
ÚbirthdtÚbirthwtr’   ÚsexZvisitdt1Zvisitdt2Zvisitdt3Zwt1Zwt2Zwt3c                 S   s   g | ]}d |d›�‘qS ©Úvisitdtr_   r   ©Ú.0Úir   r   r   Ú
<listcomp>×  s     z+TestLreshape.test_pairs.<locals>.<listcomp>rG   rr   c                 S   s   g | ]}d |d›�‘qS ©Úwtr_   r   r©   r   r   r   r¬   Ø  s     )r¨   r®   g     |œ@g     4˜@g     Ä©@g     Ò°@)r¤   r¥   r’   r¦   r¨   r®   r:   F)Zdropnac                 S   s   g | ]}d |d›�‘qS r§   r   r©   r   r   r   r¬   •  s     rh   c                 S   s   g | ]}d |d›�‘qS r­   r   r©   r   r   r   r¬   –  s     z$All column lists must be same lengthrI   )r   Únanr   ri   r   r   r   r5   rK   rL   rM   )r,   rp   r   Úspecr-   Úexp_dataÚexprN   r   r   r   Ú
test_pairsº  s’   ûûêþ
ôôôôôÆIññññññªhþ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ej d%d&d'g¡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< | 	¡ | 	¡  dddddd	gd
dddddgddddddgddddddgdœ}t|ƒ}| 
ddg¡dddg }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’   é²  é¼  r   rG   r8   ©rn   r   r	   Úyearr’   rÁ   rn   r   r	   ©r«   Új©r   rw   Úseedrx   r   ÚdictÚzipri   r†   r*   Ú	set_indexr   r   r5   ©r,   rŽ   r   r±   r?   r-   r   r   r   Útest_simplež  s*    



ûÿ	
ûzTestWideToLong.test_simplec                 C   s\   t dddddgdddd	d
ggƒ}dddddg|_ddg}t||ddd� |ddgksXt‚d S )Nr   rG   r8   rh   é   rr   r\   é   é   é	   r’   Zinc1Zinc2Zedu1Zedu2ÚincÚeduÚagerÂ   )r   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< | 	¡ | 	¡  dddddd	gd
dddddgddddddgddddddgdœ}t|ƒ}| 
ddg¡dddg }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   rG   r8   rÀ   rÁ   rn   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< | 	¡ | 	¡  dddddd	gd
dddddgddddddgddddddgdœ}t|ƒ}| 
ddg¡dddg }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   rG   r8   )rn   úA(quarterly)úB(quarterly)rÁ   r’   rÁ   rn   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
< ddddgddddgddtjtjgddddgddddgdœ}t |ƒ}| d
dg¡dddg }t|ddgd
dd�}t ||¡ d S )Nç      ð?ç       @ç      @ç      @ç      @ç      @ÚX1ÚX2©ÚA2010ÚA2011ÚB2010rn   r’   r   rG   iÚ  iÛ  )rn   r   r	   r’   rÁ   rÁ   rn   r   r	   rÂ   )r   r†   r   r¯   rÈ   r   r   r5   ©r,   r   r±   r?   r-   r   r   r   Útest_unbalancedö  s$    üÿ




ûzTestWideToLong.test_unbalancedc                 C   s  t dddgdddgdddgd	d
dgdddgdddgdddgdddgdœƒ}|j|d< t ddddddgddddddgddddddgdddd	d
dgddddddgddddddgddddddgdœƒ}| ddg¡ddddd g }t|ddd gddd!�}t |jdd"�|jdd"�¡ d S )#NÚa11Úa22Úa33Úa21Úa23Úb11Úb12Úb13Úb21Úb22Úb23rG   r8   rh   rr   r\   rÌ   é[   é\   é]   )ÚA11ÚA12ÚB11ÚB12ÚBB11ÚBB12ÚBBBXÚBBBZr’   r   é   é   )rü   rý   r   r	   ÚBBr’   rÁ   rÁ   rü   rý   r   r	   r   rÂ   ©Zaxis©r   r†   rÈ   r   r   r5   Ú
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tji¡}| ddg¡dddd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 )Nznope!rÚ   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   râ   r’   Ú )rn   rã   rä   rå   r’   rÁ   r   r	   rÁ   rn   rã   rä   rå   r   r	   r   rG   ©ÚlevelrÔ   r  ©r   r†   r   r   r   rÈ   Ú
set_levelsr   r   r5   r  )r,   rÕ   r   r±   r?   r-   r   r   r   Útest_invalid_separator+  s2    üÿ
ø
ÿz%TestWideToLong.test_invalid_separatorc                 C   s  t dddgdddgdddgd	d
dgdddgdddgdddgdddgdœƒ}|j|d< t ddddddgddddddgddddddgdddd	d
dgddddddgddddddgddddddgdœƒ}| ddg¡ddddd g }t|ddd gddd!�}t |jdd"�|jdd"�¡ d S )#Nrè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   rG   r8   rh   rr   r\   rÌ   ró   rô   rõ   )rö   r÷   rø   rù   rú   rû   ÚAratingÚArating_oldr’   r   rþ   rÿ   )r  r  r   r	   r   r’   rÁ   rÁ   r  r  r   r	   r   rÂ   r  r  r  r   r   r   Útest_num_string_disambiguationI  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tj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   r  r  r  r’   rÁ   r   r	   rÁ   r   rG   r  r   r	   rÂ   r  r	  ræ   r   r   r   Útest_invalid_suffixtypej  s,    üÿ
ø
z&TestWideToLong.test_invalid_suffixtypec                 C   s6  t dddddddddg	dddddddddg	dddddddd	d
g	dddddddddg	dœƒ}t ddddddddddddddd	dd
dgddddddddddddddddddgddddddddddddddddddgddddddddddddddddddgdœƒ}| dddg¡dg }t|dddgdd�}t ||¡ d S )NrG   r8   rh   gffffff@g333333@gš™™™™™@gÍÌÌÌÌÌü?gffffffþ?gffffff@çÍÌÌÌÌÌ @g333333@gffffff@r»   g333333@gffffff
@)ÚfamidÚbirthZht1Zht2rÛ   )Úhtr  r  rÑ   r  r  rÑ   r  rÂ   ©r   rÈ   r   r   r5   r  r   r   r   Útest_multiple_id_columns‡  sF    üÿî&&&éÿz'TestWideToLong.test_multiple_id_columnsc              	   C   sd   t dddddgdddddgdddddgdœƒ}d}tjt|d�� t|d	d
gddd� W 5 Q R X d S )NrG   r8   rh   rr   r\   )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   s¤   t dddgdddgddd	gd
ddgdddgdœƒ}t ddddddgddd	d
ddgddddddgddddddgdœƒ ddg¡}t|ddgdddd�}t ||¡ d S )NzCCH PounderzJohnny DeppzChristoph WaltzzJoel David MoorezOrlando BloomzRory Kinnearg     @�@g     ˆã@g     |Å@g     @�@g     ˆ³@g     �x@ZAvatarzPirates of the CaribbeanZSpectre)Zactor_1Zactor_2Zactor_fb_likes_1Zactor_fb_likes_2ÚtitlerG   r8   )ÚactorÚactor_fb_likesÚnumr  r  r   r  r  Ú_rÔ   r  r  r   r   r   Útest_cast_j_intº  sJ    ûÿ
úúõÿë    ÿzTestWideToLong.test_cast_j_intc              	   C   sX   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 5 Q R X 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	   r  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 ddddgd
d
ddgddtjtjg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á   )Ztreatment_placeboZtreatment_testZresult_placebor   ZplaceboÚtest©r   r  r-   Ú	treatmentr   r  r-   r&  z[a-z]+r!  ©r«   rÃ   ÚsuffixrÕ   ©r   r   r¯   rÈ   r   r   r5   r  r   r   r   Útest_nonnumeric_suffixî  s0    üÿ


üÿ     ÿ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 ddddgddddgddddg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Ý   )r   Úresult_1Z
result_fooZtreatment_1Ztreatment_fooÚ1rU   ç        ç      "@r%  r   r  r-   r&  z.+r!  r'  r  r  r   r   r   Útest_mixed_type_suffix  s4    ûÿ	



üÿù     ÿ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 d	d
d	d
d	d
d	d
gddddddddg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¹   gš™™™™™ñ?r  r-  r.  r%  r   r  r-   r&  z[0-9.]+r!  r'  r)  r  r   r   r   Útest_float_suffix  s2    ûÿ	üÿ     ÿ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   r8   rh   rr   )r   rG   r8   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PAr1  r   Útime)Ú	stubnamesr«   rÃ   )r   Ú	from_dictr   r   r5   )r,   Z	wide_dataZwide_dfr?   r-   r   r   r   Útest_col_substring_of_stubname4  s    û
z-TestWideToLong.test_col_substring_of_stubnamec              	   C   sL   t tdƒtdddƒdœƒ}tjtt d¡d�� |jddd	� W 5 Q R X d S )
Nr   r   é   r8   )r[   r(   zvalue_name (value) cannot matchrI   r(   rR   )	r   r   ri   rK   rL   rM   ÚreÚescaper   )r,   r   r   r   r   Útest_raise_of_column_name_valueD  s     ÿz.TestWideToLong.test_raise_of_column_name_valuerb   ÚOÚstringc                 C   s¬   t ddgddgddgdœƒ}| d|i¡}t|d	d
gdddd�}tjddddgdd�}t ddddgtjgd dœ|d�}|jjd  |¡}|jj	|dd�|_t
 ||¡ d S )Nr,  Ú2éd   éÈ   i,  i�  )r’   za-1za-2r’   rB   rC   r   ú-)r3  r«   rÃ   rÕ   )r,  rG   )r<  rG   )r,  r8   )r<  r8   )r’   r   )rW   rr   r•   r…   r   r  )r   r   r   rj   r�   r   r¯   r†   Zlevelsr
  r   r5   )r,   rb   r   r-   r†   r?   Z	new_levelr   r   r   Útest_missing_stubnameO  s(    û
þþz$TestWideToLong.test_missing_stubnameN)r—   r˜   r™   rÊ   rÒ   rÖ   rÙ   rç   r  r  r  r  r  r  r"  r#  r*  r/  r0  r5  r9  rK   rš   r›   r@  r   r   r   r   r´   �  s(   
!)
'r´   )r7  Únumpyr   rK   Zpandasrj   r   r   r   r   Zpandas._testingZ_testingr   Zfixturer   r!   r#   r%   r&   rž   r´   r   r   r   r   Ú<module>   s(   



    e