o
    vh                     @   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/hyperkenya/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:?StgKԲ?)Uy$> 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sJ 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 sw   Y  tjt|d |j	dgdgdd W d    d S 1 sw   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 sw   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  gQ?gGz?gQ?g\(\?g333333?gp=
ף?g{Gz?gp=
ף?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  2d      ,    )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