o
    Û­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/CropPilot/venv/lib/python3.10/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   ó   dS )NÚvarr   r   r   r   r   Úvar_name,   ó   r/   c                   C   r-   )NÚvalr   r   r   r   r   Ú
value_name1   r0   r2   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   ó   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/   r2   r   ©Ú	col_level)ÚtmÚassert_frame_equalr   )r8   r    r,   r/   r2   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s!J ‚|j ddgd�}|j ¡ g d¢ks4J ‚d S )Nr4   r5   r   )r=   )r   r4   r5   r   ©r   r   r4   r5   r6   )r8   r    r9   Úresult1Ú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   r<   r	   r   r   rE   ©r   )r   Úlenr   r7   rB   rC   )r8   r    Úresult3Úresult4Ú	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   rE   rI   ©r   r   r<   )r   r7   r   rB   rC   )r8   rO   r    Úexpectedr9   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   rU   )rS   r)   r*   r5   rI   r<   )r   rJ   r   rB   rC   )r8   r,   rQ   r9   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)   r5   rT   rU   rY   )rT   r*   r5   c                 C   s    |j |||d�}t ||¡ d S )Nr@   )r   rB   rC   )r8   r=   r>   rA   rQ   r,   r9   r   r   r   Ú%test_single_vars_work_with_multiindex�   s    z.TestMelt.test_single_vars_work_with_multiindexzid_vars, value_varsrS   rV   c                 C   sF   d}t jt|d�� |j||d� W d   ƒ d S 1 sw   Y  d S )NzF(id|value)_vars must be a list of tuples when columns are a MultiIndex©Úmatchr<   )ÚpytestÚraisesÚ
ValueErrorr   )r8   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s$J ‚|j ddg|d�}|j ¡ g d¢ks8J ‚|j ddgd	|d
�}|j ¡ g d¢ksMJ ‚|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.   r5   r   ©r=   r/   )r   r.   r5   r   )r   r   r.   r5   r   )r=   r>   r/   r   r   r	   rI   ©r   r   r7   r   rB   rC   )	r8   r    r/   Úresult5Úresult6Úresult7Úresult8Úresult9Ú	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s$J ‚|j ddg|d�}|j ¡ g d¢ks8J ‚|j ddgd	|d
�}|j ¡ g d¢ksMJ ‚|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)r2   r4   r1   r   ©r=   r2   )r   r4   r1   r   )r   r   r4   r1   r   )r=   r>   r2   r   r   r	   rI   rc   )	r8   r    r2   Úresult10Úresult11Úresult12Úresult13Úresult14Ú
expected14r   r   r   Útest_custom_value_nameÏ   s,   
ÿÿü
ù	zTestMelt.test_custom_value_namec                 C   sZ  |j ||d�}|j ¡ ddgksJ ‚|j dg||d�}|j ¡ g d¢ks&J ‚|j ddg||d�}|j ¡ g d¢ks;J ‚|j ddgd	||d
�}|j ¡ g d¢ksQJ ‚|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s«J ‚d S )Nr?   r.   r1   r   ©r=   r/   r2   )r   r.   r1   r   )r   r   r.   r1   r   ©r=   r>   r/   r2   r   r   r	   rI   Úfoor5   )r   r   r7   r   rB   rC   ÚcopyÚname)r8   r    r2   r/   Úresult15Úresult16Úresult17Úresult18Úresult19Ú
expected19Údf20Úresult20r   r   r   Útest_custom_var_and_value_nameì   sD   
ÿüüü
ù	z'TestMelt.test_custom_var_and_value_namerA   r)   c                 C   s&   |j |d�}|j ¡ ddgksJ ‚d S )Nr@   r)   r5   r6   )r8   rA   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*   r5   r6   )r8   r,   r   r   r   r   Útest_multiindex  r;   zTestMelt.test_multiindexÚcolÚ2010é   z
US/Pacific)r   Útz)rT   rU   ÚcrT   ÚdÚcategory©Údtype)r   rY   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…   )rY   r   r   r   r   )Úklassrƒ   Úattr1Úattr2T©Úignore_indexrŒ   rƒ   Ú	attributer5   rs   r   r�   rŽ   ©r   rY   r   é   )rŒ   rƒ   r‘   r5   )
r   ÚrangeÚpdÚconcatÚSeriesr   r   r   rB   rC   )r8   rƒ   r    Úexpected_valuer9   rQ   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 )	NrY   r   ÚXÚYrP   r   r   )r   r4   r5   )r   r•   ÚCategoricalr   rB   rC   )r8   Údatar9   rQ   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 s-w   Y  tjt|d�� | 	ddgdd
g¡ W d   ƒ n1 sNw   Y  tjt|d�� | 	g d¢dd
g¡ W d   ƒ n1 sow   Y  | 
¡ }tdƒtdƒg|_tjt|d�� | 	dgdg¡ W d   ƒ n1 s›w   Y  tjt|d�� |j	dgdgdd� W d   ƒ d S 1 s½w   Y  d S )Nr   )r…   r
   ÚabcdrI   zEThe following id_vars or value_vars are not present in the DataFrame:r[   rT   rU   ÚCrˆ   r   r‡   )rT   rU   Únot_hereÚor_therer   )ÚErT   rV   ÚFr   r@   )r   r   r   r   r   r   r]   r^   ÚKeyErrorr   rv   r   )r8   r    r`   Úmultir   r   r   Ú test_melt_missing_columns_raisesE  s0   ÿÿÿþüÿ"ÿ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 )Nru   ÚbarrY   r   )r   rT   rU   rˆ   r   rT   rU   rˆ   r<   Úbd)r   rT   r4   r5   r4   )r   r   r   r   ÚobjectrB   rC   ©r8   r    r9   rQ   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 )Nru   r¨   )r   rT   r   rT   )r>   ©r4   r5   ©r   r   rB   rC   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   rY   ©ru   r¨   Úfirst©r   Fr�   ru   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ÚbazÚfoobar©r+   r   rY   r   r“   r°   r²   Fr�   ru   r¨   r’   r­   )r•   Ú
MultiIndexÚfrom_tuplesr   r   rB   rC   ©r8   r   r    r9   Úexpected_indexrQ   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 )Nru   r¨   r‰   r¶   )r‹   rw   r   rY   r   r“   )ÚxÚyr²   Fr�   )r¾   r¾   r¿   r¿   r’   r­   )r   r   r   rB   rC   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   r“   )rT   rU   rU   rI   rT   rU   r<   )rÁ   rU   r   )rÁ   rU   r“   )rT   r4   r5   r®   r«   r   r   r   Ú test_melt_with_duplicate_columns£  s   ÿz)TestMelt.test_melt_with_duplicate_columnsr‹   ÚInt8Ú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 )NrY   r   rÃ   rŠ   r“   r
   ©rT   rU   )rT   rT   rU   rU   )rY   r   r“   r
   r­   )r   r•   r—   r   rB   rC   )r8   r‹   r    r9   rQ   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 )NrT   rU   r‡   rX   rY   r“   r…   r   r
   é   )r   r   r    zstring[python]r   r   r<   r(   rŠ   )rY   r“   r…   )r   r4   r5   )	r   r   r   r   r   r•   r—   rB   rC   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 )NÚA0z
2023/03/01z
Asia/Tokyo)r†   z
2023/03/10)ÚtypeÚ
start_dateÚend_dateÚA1z
2023/03/11ÚaaaaÚbbbb©r�   r   rÊ   rË   rÌ   ú	start/endÚdatert   r’   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   r•   Ú	Timestampr   rB   rC   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©rY   r   r“   ©r
   r…   rÇ   rÅ   ©Ú11Ú22Ú33rÐ   rT   r   rY   rs   rU   r“   )rT   r   rY   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   sf   t g d¢g d¢dœg d¢d�}tjtdd�� |jdgd	d
gd� W d   ƒ d S 1 s,w   Y  d S )NrÖ   r×   rÅ   rØ   rÐ   z.* must be a scalar.r[   rT   rY   r   rb   )r   r]   r^   r_   r   ©r8   r    r   r   r   Ú$test_melt_non_scalar_var_name_raises  s   þ"ÿz-TestMelt.test_melt_non_scalar_var_name_raisesN)*Ú__name__Ú
__module__Ú__qualname__r:   rD   rH   rN   r]   ÚmarkÚparametrizeÚtupler   r   ÚarrayrR   rW   r   rZ   ra   rj   rr   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   r3   6   sŒ    




ýÿü


ýÿüóþ
ýþ
*
ýþ

#		
)r3   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   ƒ d S 1 sëw   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Á   ÚsexÚvisitdt1Úvisitdt2Úvisitdt3Úwt1Úwt2Úwt3c                 S   ó   g | ]}d |d›�‘qS ©Úvisitdtrˆ   r   ©Ú.0Úir   r   r   Ú
<listcomp><  ó    z+TestLreshape.test_pairs.<locals>.<listcomp>rY   r
   c                 S   r  ©Ú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  rI   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!  c                 S   r  r  r   r  r   r   r   r  ú  r  r“   c                 S   r  r  r   r  r   r   r   r  û  r  z$All column lists must be same lengthr[   )r   Únanr   r”   r   r   rB   rC   r]   r^   r_   )r8   r�   r    Úspecr9   Úexp_dataÚexpr`   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   óÌ   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   r“   rT   rU   r‡   rX   rˆ   ÚeÚfç      @ç333333ó?çffffffæ?çš™™™™™	@çÍÌÌÌÌÌô?çš™™™™™¹?)ÚA1970ÚA1980ÚB1970ÚB1980rš   rÁ   ©rT   rU   r‡   rˆ   r*  r+  ©r,  r-  r.  r/  r0  r1  ©é²  r9  r9  é¼  r:  r:  ©r   rY   r   r   rY   r   ©rš   r   r   ÚyearrÁ   r=  ©rš   r   r   r   r   ©r  Új©r   r   r   r   r   ÚdictÚzipr”   r   r7   Ú	set_indexr   rB   rC   ©r8   r¾   r    r%  rQ   r9   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s#J ‚d S )	N)r   rY   r   r“   é   )r
   r…   rÇ   é   é	   )rÁ   Úinc1Úinc2Úedu1Úedu2ÚincÚedurÁ   Úager?  )r   r   r   )r8   r    Ú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   r“   rT   rU   r‡   rX   rˆ   r*  r+  r,  r-  r.  r/  r0  r1  )zA.1970zA.1980zB.1970zB.1980rš   rÁ   r6  r7  r8  r;  r<  r=  r>  r   r   Ú.©r  r@  ÚseprA  rE  r   r   r   Útest_separating_character%  s(   



ûÿ
	ûz(TestWideToLong.test_separating_characterc              	   C   r)  )Nr   r“   rT   rU   r‡   rX   rˆ   r*  r+  r,  r-  r.  r/  r0  r1  )zA(quarterly)1970zA(quarterly)1980zB(quarterly)1970zB(quarterly)1980rš   rÁ   r6  r7  r8  r;  )rš   úA(quarterly)úB(quarterly)r=  rÁ   r=  )rš   rW  rX  rW  rX  r?  rA  rE  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`  ra  r`  ra  ©rZ  r[  r\  r]  )r   rY   r   rY   )éÚ  rh  éÛ  ri  )rš   r   r   rÁ   r=  r=  r>  r   r   r?  )r   r   r   r#  rD  r   rB   rC   ©r8   r    r%  rQ   r9   r   r   r   Útest_unbalancedY  s$   üÿ
ûzTestWideToLong.test_unbalancedc              
   C   óÂ   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©Úa21ro  Úa23©Úb11Úb12Úb13©Úb21Úb22Úb23rÖ   r×   ©é[   é\   é]   )ÚA11ÚA12ÚB11ÚB12ÚBB11ÚBB12ÚBBBXÚBBBZrÁ   ©r}  r~  r  r}  r~  r  ©rn  ro  rp  rr  ro  rs  ©ru  rv  rw  ry  rz  r{  ©rY   r   r“   r
   r…   rÇ   r;  ©é   r�  r�  é   rŽ  rŽ  )r†  r‡  r   r   ÚBBrÁ   r=  r=  )r†  r‡  r   r   r�  ©r   r   r�  r?  rY   ©Úaxis©r   r   rD  r   rB   rC   Ú
sort_index©r8   r    rQ   r9   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!rZ  r[  r\  r]  r^  r_  r`  ra  rb  rÁ   Ú )rš   rc  rd  re  rÁ   r=  r   r   r=  )rš   rc  rd  re  r   r   r   rY   ©Úlevelr   r   rT  r‘  ©r   r   r   r   r   rD  Ú
set_levelsr   rB   rC   r”  )r8   rU  r    r%  rQ   r9   r   r   r   Útest_invalid_separatorŽ  s2   üÿ
ø
ÿ z%TestWideToLong.test_invalid_separatorc              
   C   rl  )Nrm  rq  rt  rx  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?  rY   r‘  r“  r•  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 )NrZ  r[  r\  r]  r^  r_  r`  ra  )ÚAoneÚAtwoÚBonerš   rÁ   r—  )rš   r   r¡  r¢  rÁ   r=  r   r   r=  r   rY   r˜  r   r   r?  r‘  rš  rj  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)	rY   rY   rY   r   r   r   r“   r“   r“   )	rY   r   r“   rY   r   r“   rY   r   r“   )	çffffff@ç333333@çš™™™™™@r   çÍÌÌÌÌÌü?çffffffþ?r¦  çffffff@çÍÌÌÌÌÌ @)	ç333333@çffffff@r¥  r/  r¤  ç333333@çffffff
@r«  r¥  )ÚfamidÚbirthÚht1Úht2)r¤  r«  r¥  r¬  r¦  r¥  r[  r/  r§  r¤  r¨  r­  r¦  r®  r©  r«  rª  r¥  )rY   rY   rY   rY   rY   rY   r   r   r   r   r   r   r“   r“   r“   r“   r“   r“   )rY   rY   r   r   r“   r“   rY   rY   r   r   r“   r“   rY   rY   r   r   r“   r“   )rY   r   rY   r   rY   r   rY   r   rY   r   rY   r   rY   r   rY   r   rY   r   )Úhtr¯  r°  rP  )r¯  r°  rP  r³  r¯  r°  rP  r?  ©r   rD  r   rB   rC   r•  r   r   r   Útest_multiple_id_columnsê  s"   üÿéÿz'TestWideToLong.test_multiple_id_columnsc                 C   sh   t g d¢g d¢g d¢dœƒ}d}tjt|d�� t|ddgdd	d
� W d   ƒ d S 1 s-w   Y  d S )N)rY   r   r“   r
   r…   )rY   rY   rY   rY   rY   )ÚA_A1ÚB_B1r¾   z3the id variables need to uniquely identify each rowr[   ÚA_AÚB_Br¾   Úcolnamer?  ©r   r]   r^   r_   r   ©r8   r    r`   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)Úactor_1Úactor_2Úactor_fb_likes_1Úactor_fb_likes_2Útitle)r¾  r¿  rÀ  rÁ  rÂ  rÃ  )rÄ  rÅ  rÆ  rÇ  rÈ  rÉ  )rY   rY   rY   r   r   r   )rÊ  rË  rÌ  rÊ  rË  rÌ  )ÚactorÚactor_fb_likesÚnumrÑ  rÑ  rÔ  rÒ  rÓ  Ú_rT  r´  r•  r   r   r   Útest_cast_j_int  s*   ûÿ
õÿ
ëÿzTestWideToLong.test_cast_j_intc                 C   sn   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   ƒ d S 1 s0w   Y  d S )NrZ  r[  r\  r]  r^  r_  r`  ra  )rc  rd  re  r   z,stubname can't be identical to a column namer[   r   r   rº  r?  r»  r¼  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 )NrZ  r[  r\  r]  r^  r_  r`  ra  )Útreatment_placeboÚtreatment_testÚresult_placebor   rf  )ÚplaceborÛ  ÚtestrÜ  rg  ©r   rº  r9   Ú	treatmentr   rº  r9   rÞ  z[a-z]+rÕ  ©r  r@  ÚsuffixrU  ©r   r   r#  rD  r   rB   rC   r•  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`  ra  r   rI  r^  r_  rZ  r[  r\  r]  )r   Úresult_1Ú
result_fooÚtreatment_1Útreatment_foorf  )Ú1rç  ru   ru   )ç        ç      "@r^  r_  rg  rÝ  r   rº  r9   rÞ  z.+rÕ  rß  r´  r•  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 )NrZ  r[  r\  r]  r^  r_  r   rI  r`  ra  )ztreatment_1.1ztreatment_2.1z
result_1.2rã  r   )r`  ra  r`  ra  r`  ra  r`  ra  )r-  r-  rZ  rZ  çš™™™™™ñ?rë  rª  rª  rè  ré  rÝ  r   rº  r9   rÞ  z[0-9.]+rÕ  rß  rá  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   rY   r   r“   r
   )r   rY   r   r“   r
   gš™™™™™é?rè  g      Ð?rZ  gìQ¸…ëé?g®Gáz®ç?gìQ¸…ëá?g\�Âõ(\ï?g333333ã?g¤p=
×£è?g{®Gázä?g¤p=
×£à?gq=
×£på?gÃõ(\�ÂÕ?r.  )Únode_idr   ÚPA0ÚPA1ÚPA3ÚPArí  r   Útime)Ú	stubnamesr  r@  )r   Ú	from_dictr   rB   rC   )r8   Ú	wide_dataÚwide_dfrQ   r9   r   r   r   Útest_col_substring_of_stubname—  s   û
z-TestWideToLong.test_col_substring_of_stubnamec                 C   sb   t tdƒtdddƒdœƒ}tjtt d¡d�� |jddd	� W d   ƒ d S 1 s*w   Y  d S )
Nr'   r	   é   r   )rƒ   r5   zvalue_name (value) cannot matchr[   r5   rk   )	r   r   r”   r]   r^   r_   Ú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Á   rT   rU   rÔ  ú-)ró  r  r@  rU  ))rç  rY   )rý  rY   )rç  r   )rý  r   )rÁ   rÔ  )rw   )rþ  rÿ  r   r  r
   rÅ   r²   r   Ústrr˜  )Úapplymarkerr]   rã   Úxfailr   r   r   r   r   r#  r   Úlevelsr›  rB   rC   )	r8   ÚrequestÚany_string_dtypeÚusing_infer_stringr    r9   r   rQ   Ú	new_levelr   r   r   Útest_missing_stubname²  s0   ûþþz$TestWideToLong.test_missing_stubnameN)rà   rá   râ   rF  rR  rV  rY  rk  r–  rœ  rŸ  r£  rµ  r½  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)Úna_valuer   rY   r   )ÚIDÚR_test1ÚR_test2ÚR_test3ÚDÚRr  Ú	UNPIVOTEDrÕ  z.*)ró  r  r@  rU  rà  r  )rY   rY   rY   )Útest1Útest2Útest3rŠ   r¸   r   )r•   ÚStringDtyper   r#  r   r   r   r   r   r¹   Úfrom_arraysrB   rC   )Ústring_storageÚstring_dtyper    r9   rQ   r   r   r   Ú test_wide_to_long_string_columnsÏ  s0   ûÿ	ÿ
þûýr  )rù  Únumpyr   r]   Úpandasr•   r   r   r   r   r   r   Úpandas._testingÚ_testingrB   Úfixturer    r,   r/   r2   r3   rç   r(  r  r   r   r   r   Ú<module>   s2     



   k e   P