a
    é´«j³¦  ã                   @   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	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d„ ZdS )é    N)Ú	DataFrameÚIndexÚ
date_rangeÚlreshapeÚmeltÚwide_to_longc                  C   sb   t tj d¡ d¡ttdƒƒtdddd�d�} | d	 d
k tj	¡| d< | d d
k tj	¡| d< | S )Né   )é
   é   ÚABCDz
2000-01-01r	   ÚB)ÚperiodsÚfreq©ÚcolumnsÚindexÚAr   Úid1Úid2)
r   ÚnpÚrandomÚdefault_rngÚstandard_normalr   Úlistr   ÚastypeÚint64©Úres© r   ú]/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/reshape/test_melt.pyÚdf   s    
ýr    c                  C   s<   t g d¢g d¢g d¢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   r   r   Ú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_name1   s    r0   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d2d3d4d5�¡ejg d6¢d7d8�e g d9¢¡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$dQdR„ Z%dSdT„ Z&dUdV„ Z'dWdX„ Z(dYdZ„ Z)d[S )\ÚTestMeltc                 C   s"   t |ƒ}|j ¡ ddgksJ ‚d S )NÚvariableÚvalue©r   r   Útolist)Úselfr    Úresultr   r   r   Útest_top_level_method7   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.   r0   r   ©Ú	col_level)ÚtmÚassert_frame_equalr   )r6   r    r,   r.   r0   r   r   r   Útest_method_signatures;   s    þþzTestMelt.test_method_signaturesc                 C   sl   |  ¡ }|j ¡ ddgksJ ‚|j dgd�}|j ¡ g d¢ksBJ ‚|j ddgd�}|j ¡ g d¢kshJ ‚d S )Nr2   r3   r   )r:   )r   r2   r3   r   ©r   r   r2   r3   r4   )r6   r    r7   Zresult1Zresult2r   r   r   Útest_default_col_namesJ   s    zTestMelt.test_default_col_namesc                 C   sž   |j ddgdd�}t|ƒdks"J ‚|j ddgddgd�}t|d  ¡ d |d  ¡ d dgd dgd  |d  ¡ |d  ¡  dœg d¢d	�}t ||¡ d S )
Nr   r   r   r9   r	   r   r   rB   ©r   )r   Úlenr   r5   r?   r@   )r6   r    Zresult3Zresult4Z	expected4r   r   r   Útest_value_varsT   s    üù	zTestMelt.test_value_varsÚtype_c                 C   s|   t |d  ¡ d |d  ¡ d dgd dgd  |d  ¡ |d  ¡  dœg d¢d�}|jddg|d	ƒd
�}t ||¡ d S )Nr   r   r   r   r	   r   rB   rD   ©r   r   r9   )r   r5   r   r?   r@   )r6   rG   r    Úexpectedr7   r   r   r   Útest_value_vars_typesd   s    üù	zTestMelt.test_value_vars_typesc                 C   sX   t |d dgt|ƒ dgt|ƒ |d dœg d¢d�}|jdgdgd�}t ||¡ d S )N©r   Úar   Úb©r   rM   )rK   r)   r*   r3   rD   r9   )r   rE   r   r?   r@   )r6   r,   rI   r7   r   r   r   Útest_vars_work_with_multiindexs   s    üù
z'TestMelt.test_vars_work_with_multiindexz(id_vars, value_vars, col_level, expectedr   r   r   r!   r#   r%   ©r   é   r   r"   r$   r&   )r   r)   r3   rL   rM   rQ   )rL   r*   r3   c                 C   s    |j |||d�}t ||¡ d S )Nr=   )r   r?   r@   )r6   r:   r;   r>   rI   r,   r7   r   r   r   Ú%test_single_vars_work_with_multiindex�   s     z.TestMelt.test_single_vars_work_with_multiindexzid_vars, value_varsrK   rN   c                 C   sD   d}t jt|d�� |j||d� W d   ƒ n1 s60    Y  d S )NzF(id|value)_vars must be a list of tuples when columns are a MultiIndex©Úmatchr9   )ÚpytestÚraisesÚ
ValueErrorr   )r6   r:   r;   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"J ‚|j dg|d�}|j ¡ g d¢ksHJ ‚|j ddg|d�}|j ¡ g d¢kspJ ‚|j ddgd	|d
�}|j ¡ g d¢ksšJ ‚|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-   r3   r   ©r:   r.   )r   r-   r3   r   )r   r   r-   r3   r   )r:   r;   r.   r   r   r	   rD   ©r   r   r5   r   r?   r@   )	r6   r    r.   Zresult5Zresult6Zresult7Zresult8Zresult9Z	expected9r   r   r   Útest_custom_var_name´   s(    ÿü
ù	zTestMelt.test_custom_var_namec           	      C   s"  |j |d�}|j ¡ ddgks"J ‚|j dg|d�}|j ¡ g d¢ksHJ ‚|j ddg|d�}|j ¡ g d¢kspJ ‚|j ddgd	|d
�}|j ¡ g d¢ksšJ ‚|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)r0   r2   r/   r   ©r:   r0   )r   r2   r/   r   )r   r   r2   r/   r   )r:   r;   r0   r   r   r	   rD   r[   )	r6   r    r0   Zresult10Zresult11Zresult12Zresult13Zresult14Z
expected14r   r   r   Útest_custom_value_nameÏ   s,    
ÿÿü
ù	zTestMelt.test_custom_value_namec                 C   s\  |j ||d�}|j ¡ ddgks$J ‚|j dg||d�}|j ¡ g d¢ksLJ ‚|j ddg||d�}|j ¡ g d¢ksvJ ‚|j ddgd	||d
�}|j ¡ g d¢ks¢J ‚|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�sXJ ‚d S )Nr<   r-   r/   r   ©r:   r.   r0   )r   r-   r/   r   )r   r   r-   r/   r   ©r:   r;   r.   r0   r   r   r	   rD   Úfoor3   )r   r   r5   r   r?   r@   ÚcopyÚname)r6   r    r0   r.   Zresult15Zresult16Zresult17Zresult18Zresult19Z
expected19Zdf20Zresult20r   r   r   Útest_custom_var_and_value_nameì   sD    
ÿüüü
ù	z'TestMelt.test_custom_var_and_value_namer>   r)   c                 C   s&   |j |d�}|j ¡ ddgks"J ‚d S )Nr=   r)   r3   r4   )r6   r>   r,   r   r   r   r   Útest_col_level  s    zTestMelt.test_col_levelc                 C   s"   |  ¡ }|j ¡ g d¢ksJ ‚d S )N)r)   r*   r3   r4   )r6   r,   r   r   r   r   Útest_multiindex  s    zTestMelt.test_multiindexÚcolZ2010é   z
US/Pacific)r   Útz)rL   rM   ÚcrL   ÚdÚcategory©Údtype)r   rQ   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 )Nrh   )rQ   r   r   r   r   )Úklassrg   Úattr1Úattr2T©Zignore_indexro   rg   Ú	attributer3   r_   r   rp   rq   ©r   rQ   r   é   )ro   rg   rs   r3   )
r   ÚrangeÚpdÚconcatÚSeriesr   r   r   r?   r@   )r6   rg   r    Zexpected_valuer7   rI   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 )	NrQ   r   ÚXÚYrH   r   r   )r   r2   r3   )r   rw   ZCategoricalr   r?   r@   )r6   Údatar7   rI   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|d��$ | 	ddgd	d
g¡ W d   ƒ n1 sZ0    Y  tjt|d��$ | 	ddgdd
g¡ W d   ƒ n1 sœ0    Y  tjt|d��$ | 	g d¢dd
g¡ W d   ƒ n1 sÞ0    Y  | 
¡ }tdƒtdƒg|_tjt|d��  | 	dgdg¡ W d   ƒ n1 �s80    Y  tjt|d��$ |j	dgdgdd� W d   ƒ n1 �s|0    Y  d S )Nr   )rh   r
   ÚabcdrD   zEThe following id_vars or value_vars are not present in the DataFrame:rS   rL   rM   ÚCrk   r   rj   )rL   rM   Znot_hereZor_therer   )ÚErL   rN   ÚFr   r=   )r   r   r   r   r   r   rU   rV   ÚKeyErrorr   rb   r   )r6   r    rX   Zmultir   r   r   Ú test_melt_missing_columns_raisesE  s&    ÿ22þ20z)TestMelt.test_melt_missing_columns_raisesc                 C   sx   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œƒ}|d  t¡|d< t ||¡ d S )Nra   ÚbarrQ   r   )r   rL   rM   rk   r   rL   rM   rk   r9   Zbd)r   rL   r2   r3   r2   )r   r   r   r   Úobjectr?   r@   ©r6   r    r7   rI   r   r   r   Útest_melt_mixed_int_str_id_varsh  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 )Nra   r…   )r   rL   r   rL   )r;   ©r2   r3   ©r   r   r?   r@   r‡   r   r   r   Ú"test_melt_mixed_int_str_value_varss  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   rQ   ©ra   r…   Úfirst©r   Frr   ra   r…   r‰   rŠ   r‡   r   r   r   Útest_ignore_indexz  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   rQ   r   ru   rŒ   rŽ   Frr   ra   r…   rt   r‰   )rw   Ú
MultiIndexÚfrom_tuplesr   r   r?   r@   ©r6   r   r    r7   Zexpected_indexrI   r   r   r   Útest_ignore_multiindexƒ  s    ÿÿþzTestMelt.test_ignore_multiindexc                 C   sx   t ddgddd�}tddgdd	gd
œ|d�}t|dd�}t ddgd ddd�}tg d¢g d¢dœ|d�}t ||¡ d S )Nra   r…   rl   r’   )rn   rc   r   rQ   r   ru   )ÚxÚyrŽ   Frr   )r˜   r˜   r™   r™   rt   r‰   )r   r   r   r?   r@   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)Úidr   ru   )rL   rM   rM   rD   rL   rM   r9   )r›   rM   r   )r›   rM   ru   )rL   r2   r3   rŠ   r‡   r   r   r   Ú test_melt_with_duplicate_columns£  s    ÿz)TestMelt.test_melt_with_duplicate_columnsrn   ÚInt8ZInt64c                 C   sb   t tjddgdd�tjddg|d�dœƒ}| ¡ }t g d¢tjg d	¢|d�d
œƒ}t ||¡ d S )NrQ   r   r�   rm   ru   r
   ©rL   rM   )rL   rL   rM   rM   )rQ   r   ru   r
   r‰   )r   rw   ry   r   r?   r@   )r6   rn   r    r7   rI   r   r   r   Útest_melt_ea_dtype¬  s    þÿþÿzTestMelt.test_melt_ea_dtypec                 C   s€   t ddddœddddœdd	d
dœdœƒ}|j d¡|_|jdgdgd�}t tdƒtjdgd dd�g d¢dœƒ}t ||¡ d S )NrL   rM   rj   rP   rQ   ru   rh   r   r
   é   )r   r   r€   zstring[python]r   r   r9   r(   rm   )rQ   ru   rh   )r   r2   r3   )	r   r   r   r   r   rw   ry   r?   r@   r‡   r   r   r   Útest_melt_ea_columns¾  s    


ýÿýÿzTestMelt.test_melt_ea_columnsc              
   C   sÊ   t dtjddd�tjddd�dœdtjddd�tjddd�dœgd	d
gd�}|jdgddgddd�}t dddddœdddddœtjddd�tjddd�tjddd�tjddd�dœdœƒ}t ||¡ d S )NZA0z
2023/03/01z
Asia/Tokyo)ri   z
2023/03/10)ÚtypeÚ
start_dateÚend_dateÚA1z
2023/03/11ZaaaaZbbbb©r}   r   r¢   r£   r¤   ú	start/endÚdater`   rt   z2023-03-01 00:00:00+0900z2023-03-10 00:00:00+0900z2023-03-11 00:00:00+0900)r¢   r§   r¨   )r   rw   Ú	Timestampr   r?   r@   r‡   r   r   r   Útest_melt_preserves_datetimeÒ  sB    ýýúóüüüøÿz%TestMelt.test_melt_preserves_datetimec                 C   s\   t g d¢g d¢dœg d¢d�}|jdddd	�}t g d¢d
gd g d¢dœƒ}t ||¡ d S ©N©rQ   r   ru   ©r
   rh   r    rž   ©Z11Z22Z33r¦   rL   r   rQ   r_   rM   ru   )rL   r   rQ   rŠ   r‡   r   r   r   Ú#test_melt_allows_non_scalar_id_varsû  s    þýz,TestMelt.test_melt_allows_non_scalar_id_varsc                 C   s^   t g d¢g d¢dœg d¢d�}|jdgddd	�}t g d¢d
gd g d¢dœƒ}t ||¡ d S r«   rŠ   r‡   r   r   r   Ú$test_melt_allows_non_string_var_name  s    þýz-TestMelt.test_melt_allows_non_string_var_namec                 C   sd   t g d¢g d¢dœg d¢d�}tjtdd��$ |jdgd	d
gd� W d   ƒ n1 sV0    Y  d S )Nr¬   r­   rž   r®   r¦   z.* must be a scalar.rS   rL   rQ   r   rZ   )r   rU   rV   rW   r   ©r6   r    r   r   r   Ú$test_melt_non_scalar_var_name_raises  s    þz-TestMelt.test_melt_non_scalar_var_name_raisesN)*Ú__name__Ú
__module__Ú__qualname__r8   rA   rC   rF   rU   ÚmarkZparametrizeÚtupler   r   ÚarrayrJ   rO   r   rR   rY   r\   r^   rd   re   rf   rw   ry   r   rz   r~   r„   rˆ   r‹   r�   r—   rš   rœ   rŸ   r¡   rª   r¯   r°   r²   r   r   r   r   r1   6   sŠ   




ýÿü


ýÿüóþ
ýþ
*
ýþ

#		
)r1   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 ||¡ d3d„ tdd4ƒD ƒd5d„ tddƒD ƒdœ}d6}tj	t
|d7�� t||ƒ W d   ƒ n1 �sÖ0    Y  d S )8N)Ú	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 ©Úvisitdtrk   r   ©Ú.0Úir   r   r   Ú
<listcomp><  ó    z+TestLreshape.test_pairs.<locals>.<listcomp>rQ   r
   c                 S   s   g | ]}d |d›�‘qS ©Úwtrk   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è   rD   F)Z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ì   c                 S   s   g | ]}d |d›�‘qS rà   r   râ   r   r   r   rå   ú  ræ   ru   c                 S   s   g | ]}d |d›�‘qS rç   r   râ   r   r   r   rå   û  ræ   z$All column lists must be same lengthrS   )r   Únanr   rv   r   r   r?   r@   rU   rV   rW   )r6   r}   r    Úspecr7   Úexp_dataÚexprX   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d%d&„ Zd'S )(ÚTestWideToLongc              	   C   sÌ   t j d¡ 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   ru   rL   rM   rj   rP   rk   ÚeÚfç      @ç333333ó?çffffffæ?çš™™™™™	@çÍÌÌÌÌÌô?çš™™™™™¹?)ZA1970ZA1980ZB1970ZB1980r{   r›   ©rL   rM   rj   rk   ró   rô   ©rõ   rö   r÷   rø   rù   rú   ©é²  rþ   rþ   é¼  rÿ   rÿ   ©r   rQ   r   r   rQ   r   ©r{   r   r   Úyearr›   r  ©r{   r   r   r   r   ©rä   Új©r   r   r   r   r   ÚdictÚziprv   r   r5   Ú	set_indexr   r?   r@   ©r6   r˜   r    rï   rI   r7   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   rQ   r   ru   é   )r
   rh   r    é   é	   )r›   Zinc1Zinc2Zedu1Zedu2ÚincÚedur›   Úager  )r   r   r   )r6   r    Zstubsr   r   r   Ú
test_stubs  s
    
zTestWideToLong.test_stubsc              	   C   sÎ   t j d¡ 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   ru   rL   rM   rj   rP   rk   ró   rô   rõ   rö   r÷   rø   rù   rú   )zA.1970zA.1980zB.1970zB.1980r{   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¡ 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   ru   rL   rM   rj   rP   rk   ró   rô   rõ   rö   r÷   rø   rù   rú   )zA(quarterly)1970zA(quarterly)1980zB(quarterly)1970zB(quarterly)1980r{   r›   rû   rü   rý   r   )r{   úA(quarterly)úB(quarterly)r  r›   r  )r{   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ÚB2010r{   r›   ©r   r!  r   r!  ©r  r  r  r  )r   rQ   r   rQ   )éÚ  r(  éÛ  r)  )r{   r   r   r›   r  r  r  r   r   r  )r   r   r   rí   r	  r   r?   r@   ©r6   r    rï   rI   r7   r   r   r   Útest_unbalancedY  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Úb23r¬   r­   ©é[   é\   é]   )ÚA11ÚA12ÚB11ÚB12ÚBB11ÚBB12ÚBBBXÚBBBZr›   ©r<  r=  r>  r<  r=  r>  ©r-  r.  r/  r1  r.  r2  ©r4  r5  r6  r8  r9  r:  ©rQ   r   ru   r
   rh   r    r   ©é   rL  rL  é   rM  rM  )rE  rF  r   r   ÚBBr›   r  r  )rE  rF  r   r   rN  ©r   r   rN  r  rQ   ©Zaxis©r   r   r	  r   r?   r@   Ú
sort_index©r6   r    rI   r7   r   r   r   Útest_character_overlapp  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¡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›   Ú )r{   r#  r$  r%  r›   r  r   r   r  )r{   r#  r$  r%  r   r   r   rQ   ©Úlevelr   r   r  rP  ©r   r   r   r   r   r	  Ú
set_levelsr   r?   r@   rR  )r6   r  r    rï   rI   r7   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,  r0  r3  r7  r¬   r­   r;  )r?  r@  rA  rB  rC  rD  ÚAratingÚArating_oldr›   rG  rH  rI  rJ  r   rK  )r[  r\  r   r   rN  r›   r  r  )r[  r\  r   r   rN  rO  r  rQ   rP  rQ  rS  r   r   r   Útest_num_string_disambiguation¬  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ÚBoner{   r›   rU  )r{   r^  r_  r`  r›   r  r   r   r  r   rQ   rV  r   r   r  rP  rX  r*  r   r   r   Útest_invalid_suffixtypeÍ  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)	rQ   rQ   rQ   r   r   r   ru   ru   ru   )	rQ   r   ru   rQ   r   ru   rQ   r   ru   )	çffffff@ç333333@çš™™™™™@r   çÍÌÌÌÌÌü?çffffffþ?rd  çffffff@çÍÌÌÌÌÌ @)	ç333333@çffffff@rc  rø   rb  ç333333@çffffff
@ri  rc  )ÚfamidÚbirthZht1Zht2)rb  ri  rc  rj  rd  rc  r  rø   re  rb  rf  rk  rd  rl  rg  ri  rh  rc  )rQ   rQ   rQ   rQ   rQ   rQ   r   r   r   r   r   r   ru   ru   ru   ru   ru   ru   )rQ   rQ   r   r   ru   ru   rQ   rQ   r   r   ru   ru   rQ   rQ   r   r   ru   ru   )rQ   r   rQ   r   rQ   r   rQ   r   rQ   r   rQ   r   rQ   r   rQ   r   rQ   r   )Úhtrm  rn  r  )rm  rn  r  ro  rm  rn  r  r  ©r   r	  r   r?   r@   rS  r   r   r   Útest_multiple_id_columnsê  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)rQ   r   ru   r
   rh   )rQ   rQ   rQ   rQ   rQ   )ZA_A1ZB_B1r˜   z3the id variables need to uniquely identify each rowrS   ZA_AZB_Br˜   Úcolnamer  ©r   rU   rV   rW   r   ©r6   r    rX   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)rv  rw  rx  ry  rz  r{  )r|  r}  r~  r  r€  r�  )rQ   rQ   rQ   r   r   r   )r‚  rƒ  r„  r‚  rƒ  r„  )ÚactorÚactor_fb_likesÚnumr…  r…  rˆ  r†  r‡  Ú_r  rp  rS  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 namerS   r   r   rr  r  rs  rt  r   r   r   Útest_identical_stubnamesD  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&  )ÚplaceborŒ  Útestr�  r'  ©r   rr  r7   Ú	treatmentr   rr  r7   r�  z[a-z]+r‰  ©rä   r  Úsuffixr  ©r   r   rí   r	  r   r?   r@   rS  r   r   r   Útest_nonnumeric_suffixQ  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•  ra   ra   )ç        ç      "@r  r  r'  rŽ  r   rr  r7   r�  z.+r‰  r�  rp  rS  r   r   r   Útest_mixed_type_suffixh  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™  rh  rh  r–  r—  rŽ  r   rr  r7   r�  z[0-9.]+r‰  r�  r’  rS  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   rQ   r   ru   r
   )r   rQ   r   ru   r
   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)Ú	stubnamesrä   r  )r   Ú	from_dictr   r?   r@   )r6   Z	wide_dataZwide_dfrI   r7   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jtt d¡d�� |jddd	� W d   ƒ n1 sR0    Y  d S )
Nr'   r	   é   r   )rg   r3   zvalue_name (value) cannot matchrS   r3   r]   )	r   r   rv   rU   rV   rW   ÚreÚescaper   r±   r   r   r   Útest_raise_of_column_name_value§  s
    
ÿz.TestWideToLong.test_raise_of_column_name_valuec           	      C   sÜ   |r |dkr |  tjjdd�¡ tddgddgdd	gd
œƒ}| d|i¡}t|ddgdddd�}tg d¢dd�}tg d¢tj	gd dœ|d�}|j
jd  |¡}|dkrº|j
jd  d¡}|j
j|dd�|_
t ||¡ d S )Nr†   zTODO(infer_string))Úreasonr•  Ú2éd   éÈ   é,  é�  )r›   za-1za-2r›   rL   rM   rˆ  ú-)r�  rä   r  r  ))r•  rQ   )r¥  rQ   )r•  r   )r¥  r   )r›   rˆ  )rc   )r¦  r§  r¨  r©  r
   rž   rŽ   r   ÚstrrV  )ZapplymarkerrU   r¶   Zxfailr   r   r   r   r   rí   r   ZlevelsrY  r?   r@   )	r6   ÚrequestZany_string_dtypeZusing_infer_stringr    r7   r   rI   Z	new_levelr   r   r   Útest_missing_stubname²  s0    ûþþz$TestWideToLong.test_missing_stubnameN)r³   r´   rµ   r  r  r  r  r+  rT  rZ  r]  ra  rq  ru  rŠ  r‹  r“  r˜  rš  rŸ  r£  r­  r   r   r   r   rò     s&   
!)
'rò   c              	   C   s¶   t j| tjd�}tddiddiddiddiddidœƒ}|j |¡|_t|dddd	d
d�}tddgddgddggtddgƒt j	j
g d¢tg d¢|d�gddgd�d�}t ||¡ d S )N)Zna_valuer   rQ   r   )ÚIDZR_test1ZR_test2ZR_test3ÚDÚRr®  Z	UNPIVOTEDr‰  z.*)r�  rä   r  r  r‘  r¯  )rQ   rQ   rQ   )Ztest1Ztest2Ztest3rm   r“   r   )rw   ZStringDtyper   rí   r   r   r   r   r   r”   Zfrom_arraysr?   r@   )Zstring_storageZstring_dtyper    r7   rI   r   r   r   Ú test_wide_to_long_string_columnsÏ  s0    ûÿ	ÿ
þûýr±  )r¡  Únumpyr   rU   Zpandasrw   r   r   r   r   r   r   Zpandas._testingZ_testingr?   Zfixturer    r,   r.   r0   r1   r¹   rò   r±  r   r   r   r   Ú<module>   s0    



   k e   P