
    d                        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             Zej        d             Zej        d             Zej        d             Z G d d          Z G d	 d
          Z G d d          ZdS )    N)	DataFramelreshapemeltwide_to_longc                      t          j                    d d         } | d         dk                        t          j                  | d<   | d         dk                        t          j                  | d<   | S )N
   Ar   id1Bid2)tmmakeTimeDataFrameastypenpint64ress    Z/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/reshape/test_melt.pydfr      s`    


 
 "
%Cc(Q,&&rx00CJc(Q,&&rx00CJJ    c                      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   listcolumnsnamesr   s    r   df1r%      s^    
***,,,+++	
 C ;;U,CKCKJr   c                      dS )Nvar r(   r   r   var_namer)   &       5r   c                      dS )Nvalr(   r(   r   r   
value_namer-   +   r*   r   c                   Z   e Zd Zd Zd Zd Zd Zej        	                    de
eej        f          d             Z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             Zej        	                    dddggdgdgddgg          d             Zd Zd Zd Zej        	                    d dd!g          d"             Zd# Zej        	                    d$ ej         ej        d%d&d'(                     ej        g d)d*+           ej        g d,          g          d-             Zd. Zd/ Zd0 Zd1 Zd2 Z d3 Z!d4 Z"d5 Z#ej        	                    d6d7d8g          d9             Z$d:S );TestMeltc                 f    t          |          }|j                                        ddgk    sJ d S )Nvariablevaluer   r#   tolist)selfr   results      r   test_top_level_methodzTestMelt.test_top_level_method1   s7    b~$$&&:w*???????r   c           	         t          j        |                                t          |                     t          j        |                    ddgddg          t          |ddgddg                     t          j        |                    ||          t          |||                     t          j        |                    d          t          |d                     d S )	Nr
   r   r	   r   id_vars
value_varsr)   r-   r   	col_level)r   assert_frame_equalr   )r5   r   r%   r)   r-   s        r   test_method_signatureszTestMelt.test_method_signatures5   s    
bggiib222
GGUENSzGBBeU^c
CCC	
 	
 	

 	GGX*G==h:>>>	
 	
 	

 	chhh33T#5K5K5KLLLLLr   c                 R   |                                 }|j                                        ddgk    sJ |                     dg          }|j                                        g dk    sJ |                     ddg          }|j                                        g dk    sJ d S )Nr1   r2   r
   )r:   )r
   r1   r2   r   r
   r   r1   r2   r3   )r5   r   r6   result1result2s        r   test_default_col_nameszTestMelt.test_default_col_namesD   s    ~$$&&:w*?????''5''**%%''+G+G+GGGGG''5%.'11%%''+N+N+NNNNNNNr   c                    |                     ddgd          }t          |          dk    sJ |                     ddgddg          }t          |d                                         dz  |d                                         dz  dgdz  dgdz  z   |d                                         |d                                         z   dg d	          }t	          j        ||           d S )
Nr
   r   r	   r9   r   r      rB   r#   )r   lenr   r4   r   r?   )r5   r   result3result4	expected4s        r   test_value_varszTestMelt.test_value_varsN   s    ''5%.S'AA7||r!!!!''5%.c3Z'HH%y''))A-%y''))A- EBJ#3S'..**RW^^-=-==	  877
 
 
	 	gy11111r   type_c                    t          |d                                         dz  |d                                         dz  dgdz  dgdz  z   |d                                         |d                                         z   dg d          }|                    ddg |d	          
          }t          j        ||           d S )Nr
   rG   r   r	   r   r   rB   rH   r	   r   r9   )r   r4   r   r   r?   )r5   rN   r   expectedr6   s        r   test_value_vars_typeszTestMelt.test_value_vars_types^   s     %y''))A-%y''))A- EBJ#3S'..**RW^^-=-==	  877
 
 
 %EE*<M<MNN
fh/////r   c                     t          |d         dgt          |          z  dgt          |          z  |d         dg d          }|                    dgdg          }t          j        ||           d S )Nr	   ar   br   rV   )rT   r    r!   r2   rH   r9   )r   rI   r   r   r?   )r5   r%   rQ   r6   s       r   test_vars_work_with_multiindexz'TestMelt.test_vars_work_with_multiindexm   s    
Ous3xx'us3xx'Z	  877
 
 
 :,J<HH
fh/////r   z(id_vars, value_vars, col_level, expectedr	   r   r   r   r   r   r      rG   r   r   r   )r	   r    r2   rU   rV   rZ   )rU   r!   r2   c                 `    |                     |||          }t          j        ||           d S )Nr=   )r   r   r?   )r5   r:   r;   r>   rQ   r%   r6   s          r   %test_single_vars_work_with_multiindexz.TestMelt.test_single_vars_work_with_multiindex{   s5    @ ':CC
fh/////r   zid_vars, value_varsrT   rW   c                     d}t          j        t          |          5  |                    ||           d d d            d S # 1 swxY w Y   d S )NzF(id|value)_vars must be a list of tuples when columns are a MultiIndexmatchr9   )pytestraises
ValueErrorr   )r5   r:   r;   r%   msgs        r   $test_tuple_vars_fail_with_multiindexz-TestMelt.test_tuple_vars_fail_with_multiindex   s     X]:S111 	= 	=HHWH<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   AA
Ac                 T   |                     |          }|j                                        ddgk    sJ |                     dg|          }|j                                        g dk    sJ |                     ddg|          }|j                                        g dk    sJ |                     ddgd	|
          }|j                                        g dk    sJ |                     ddgd	dg|
          }t          d|d                                         dz  d|d                                         dz  |d	gdz  dgdz  z   d|d	                                         |d                                         z   idd|dg          }t	          j        ||           d S )N)r)   r'   r2   r
   )r:   r)   )r
   r'   r2   r   )r
   r   r'   r2   r	   )r:   r;   r)   r   rG   r   rH   r   r#   r4   r   r   r?   )	r5   r   r)   result5result6result7result8result9	expected9s	            r   test_custom_var_namezTestMelt.test_custom_var_name   s   ''8',,%%''E7+;;;;;''5'H'==%%''+B+B+BBBBB''5%.8'DD%%''+I+I+IIIII''5%.S8'TT%%''+I+I+IIIII''ENSzH  
 
 r%y''))A-r%y''))A-3%"*urz1"S'..**RW^^-=-==	 E8W5
 
 
	 	gy11111r   c                 T   |                     |          }|j                                        ddgk    sJ |                     dg|          }|j                                        g dk    sJ |                     ddg|          }|j                                        g dk    sJ |                     ddgd	|
          }|j                                        g dk    sJ |                     ddgd	dg|
          }t          d|d                                         dz  d|d                                         dz  dd	gdz  dgdz  z   ||d	                                         |d                                         z   iddd|g          }t	          j        ||           d S )N)r-   r1   r,   r
   r:   r-   )r
   r1   r,   r   )r
   r   r1   r,   r	   )r:   r;   r-   r   rG   r   rH   rf   )	r5   r   r-   result10result11result12result13result14
expected14s	            r   test_custom_value_namezTestMelt.test_custom_value_name   s   77j711&&((Z,?????77E7z7BB&&((,F,F,FFFFF77E5>j7II&&((,M,M,MMMMM77ENsz  
 
 &&((,M,M,MMMMM77ENSzj  
 
 r%y''))A-r%y''))A-SEBJ#3RW^^--30@0@@	 E:z:
 
 

 	h
33333r   c                    |                     ||          }|j                                        ddgk    sJ |                     dg||          }|j                                        g dk    sJ |                     ddg||          }|j                                        g dk    sJ |                     ddgd	||
          }|j                                        g dk    sJ |                     ddgd	dg||
          }t          d|d                                         dz  d|d                                         dz  |d	gdz  dgdz  z   ||d	                                         |d                                         z   idd||g          }	t	          j        ||	           |                                }
d|
j        _        |
                                 }|j                                        ddgk    sJ d S )Nr<   r'   r,   r
   r:   r)   r-   )r
   r'   r,   r   )r
   r   r'   r,   r	   )r:   r;   r)   r-   r   rG   r   rH   foor2   )r   r#   r4   r   r   r?   copyname)r5   r   r-   r)   result15result16result17result18result19
expected19df20result20s               r   test_custom_var_and_value_namez'TestMelt.test_custom_var_and_value_name   sA   77H7DD&&((UEN::::77E7X*7UU&&((,A,A,AAAAA77ENX*  
 
 &&((,H,H,HHHHH77EN!	  
 
 &&((,H,H,HHHHH77ENSz!	  
 
 r%y''))A-r%y''))A-3%"*urz1RW^^--30@0@@	 E8Z8
 
 

 	h
333wwyy!99;;&&((UG,<<<<<<<r   r>   r    c                 t    |                     |          }|j                                        ddgk    sJ d S )Nr=   r    r2   r3   )r5   r>   r%   r   s       r   test_col_levelzTestMelt.test_col_level  s?    hhh++{!!##w'7777777r   c                 p    |                                 }|j                                        g dk    sJ d S )N)r    r!   r2   r3   )r5   r%   r   s      r   test_multiindexzTestMelt.test_multiindex  s;    hhjj{!!##'>'>'>>>>>>>r   col2010   z
US/Pacific)periodstz)rU   rV   crU   dcategorydtype)r   rZ   r   r   r   c                    t          t          d          |g d|d          }t          j        t          j        g d          |gd          }t          |ddgdd	
          }t          t          t          d                    dz  t          j        |gdz  d          dgdz  dgdz  z   |d          }g d|_        t          j	        ||           d S )Nr   )rZ   r   r   r   r   )klassr   attr1attr2Tignore_indexr   r   	attributer2   rx   rG   r   r   r   rZ   rG      )r   r   r   r2   )
r   rangepdconcatSeriesr   r"   r#   r   r?   )r5   r   r   expected_valuer6   rQ   s         r   test_pandas_dtypeszTestMelt.test_pandas_dtypes  s     Ahhs___sSS
 
 BIooo$>$>#DSWXXX%(;7
 
 
 a>>A%9cUQYT:::9q=G9q=0!	 
 
 BAA
fh/////r   c                     t          ddgt          j        ddg          d          }t          |dgdg          }t          t          j        ddg          ddgddgd          }t	          j        ||           d S )	NrZ   rG   XYrP   r   r	   )r   r1   r2   )r   r   Categoricalr   r   r?   )r5   datar6   rQ   s       r   test_preserve_categoryzTestMelt.test_preserve_category5  s    1vBNC:,F,FGGHHdSEC5)).#s,,3*PQSTvVV
 
 	fh/////r   c                    t          t          j                            dd          t	          d                    }d}t          j        t          |                    dd          	          5  |	                    d
dgddg           d d d            n# 1 swxY w Y   t          j        t          |                    dd          	          5  |	                    ddgddg           d d d            n# 1 swxY w Y   t          j        t          |                    dd          	          5  |	                    g dddg           d d d            n# 1 swxY w Y   |
                                }t	          d          t	          d          g|_        t          j        t          |                    dd          	          5  |	                    dgdg           d d d            n# 1 swxY w Y   t          j        t          |                    dd          	          5  |	                    dgdgd           d d d            d S # 1 swxY w Y   d S )Nr      abcdrH   z=The following '{Var}' are not present in the DataFrame: {Col}r;   z\['C'\])VarColr^   rU   rV   Cr   r:   z\['A'\]r	   r   z\['not_here', 'or_there'\])rU   rV   not_hereor_thereABCDz\['E'\])ErU   rW   z\['F'\]Fr   r=   )r   r   randomrandnr"   r`   ra   KeyErrorformatr   rz   r#   )r5   r   rc   multis       r    test_melt_missing_columns_raisesz)TestMelt.test_melt_missing_columns_raises?  s    ryq!,,d6llCCC N]CJJ<[JII
 
 
 	, 	, GGS#Jc
+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, ]83::):+U+UVVV 	, 	,GGS#Jc
+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, ]**0N*OO
 
 
 	D 	D GG666c
CCC		D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 		ftF||4]83::):+U+UVVV 	3 	3JJ
|j\222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 ]CJJ<[JII
 
 
 	2 	2 JJuseqJ111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2sZ   /BBBC88C<?C<3EE!EG11G58G5,IIIc                     t          dgdgdgdgd          }t          |ddgdd	g
          }t          dgdz  dgdz  t          d          ddgd          }t          j        ||           d S )Nry   barrZ   rG   )r   rU   rV   r   r   rU   rV   r   r9   bd)r   rU   r1   r2   )r   r   r"   r   r?   r5   r   r6   rQ   s       r   test_melt_mixed_int_str_id_varsz(TestMelt.test_melt_mixed_int_str_id_varsd  s    E7%s!EEFFb1c(SzBBB!5'A+4::QRTUPVWW
 
 	fh/////r   c                     t          dgdgd          }t          |ddg          }t          ddgddgd          }t          j        ||           d S )Nry   r   )r   rU   r   rU   )r;   r1   r2   r   r   r   r?   r   s       r   "test_melt_mixed_int_str_value_varsz+TestMelt.test_melt_mixed_int_str_value_varsm  sg    E7%1122baX...1c(eU^LLMM
fh/////r   c                     t          dgdgddg          }t          |d          }t          dd	gddgd
ddg          }t          j        ||           d S )Nr   rZ   ry   r   firstindexFr   ry   r   r   r   r   s       r   test_ignore_indexzTestMelt.test_ignore_indext  s}    sA3//yAAAbu---1a&99'7AS
 
 
 	fh/////r   c                 ^   t           j                            ddgddg          }t          ddgdd	gd
|          }t	          |d          }t           j                            ddgdz  ddg          }t          dgdz  dgdz  z   g dd|          }t          j        ||           d S )N)r   second)r   thirdbazfoobar)r$   r   rZ   rG   r   r   r   Fr   ry   r   r   r   )r   
MultiIndexfrom_tuplesr   r   r   r?   r5   r   r   r6   expected_indexrQ   s         r   test_ignore_multiindexzTestMelt.test_ignore_multiindex}  s    )) "45eX=N * 
 
 1vq!f55UCCCbu---22 "459%AR 3 
 
 1w{2\\\JJ 
 
 

 	fh/////r   c                    t          j        ddgdd          }t          ddgdd	gd
|          }t          |d          }t          j        ddgdz  dd          }t          g dg dd|          }t	          j        ||           d S )Nry   r   r   r   )r   r{   r   rZ   rG   r   )xyr   Fr   )r   r   r   r   r   r   )r   Indexr   r   r   r?   r   s         r   test_ignore_index_name_and_typez(TestMelt.test_ignore_index_name_and_type  s    %zFFFaV1a&11???bu---5%.1"4JUSSS---EE 
 
 

 	fh/////r   c                     t          g dgg d          }|                    dgdg          }t          g dg dgg d	          }t          j        ||           d S )
N)idrG   r   )rU   rV   rV   rH   rU   rV   r9   )r   rV   rG   )r   rV   r   )rU   r1   r2   r   r   s       r    test_melt_with_duplicate_columnsz)TestMelt.test_melt_with_duplicate_columns  s    ~???#C599^^^^^,6P6P6P
 
 
 	fh/////r   r   Int8Int64c                 (   t          t          j        ddgd          t          j        ddg|          d          }|                                }t          g dt          j        g d	|          d
          }t	          j        ||           d S )NrZ   rG   r   r   r   r   rU   rV   )rU   rU   rV   rV   )rZ   rG   r   r   r   )r   r   r   r   r   r?   )r5   r   r   r6   rQ   s        r   test_melt_ea_dtypezTestMelt.test_melt_ea_dtype  s     Y1vV444Y1vU333 
 
 000<<<u=== 
 
 	fh/////r   N)%__name__
__module____qualname__r7   r@   rE   rM   r`   markparametrizetupler"   r   arrayrR   rX   r   r\   rd   rm   rv   r   r   r   r   r   
date_ranger   r   r   r   r   r   r   r   r   r   r(   r   r   r/   r/   0   sv       @ @ @M M MO O O2 2 2  [WudBH&=>>0 0 ?>00 0 0 [2 	!)iIFF#&3377%.8!H!H  	 	!)iIFF#&3377%.8!H!H  		
 :0 0; :0 [*&\:&$	
 = = =2 2 264 4 4:(= (= (=T [[1e*558 8 658? ? ? [BImbmFA,GGGHHBI///zBBBBIooo&&	
 0 0 0(0 0 0#2 #2 #2J0 0 00 0 00 0 00 0 0$0 0 00 0 0 [Wvw&7880 0 980 0 0r   r/   c                       e Zd Zd ZdS )TestLreshapec                 F   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 t          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        "          }t          j        ||           t	          ||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d/d0d1dt           j        ddddt           j        t           j        ddgd!}t          ||j        "          }t          j        ||           d2 t          dd3          D             d4 t          dd          D             d}d5}t          j	        t          |6          5  t	          ||           d d d            d S # 1 swxY w Y   d S )7N)	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                     g | ]}d |d	S visitdtr   r(   .0is     r   
<listcomp>z+TestLreshape.test_pairs.<locals>.<listcomp>       ===A!===r   rZ   r   c                     g | ]}d |d	S wtr   r(   r  s     r   r  z+TestLreshape.test_pairs.<locals>.<listcomp>       333!::::333r   )r  r   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )r   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   rH   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                     g | ]}d |d	S r  r(   r  s     r   r  z+TestLreshape.test_pairs.<locals>.<listcomp>  r  r   r   c                     g | ]}d |d	S r  r(   r  s     r   r  z+TestLreshape.test_pairs.<locals>.<listcomp>  r!  r   z$All column lists must be same lengthr^   )r   nanr   r   r   r#   r   r?   r`   ra   rb   )r5   r   r   specr6   exp_dataexprc   s           r   
test_pairszTestLreshape.test_pairs  sS      655+++CCC   %bfk;T$bfbfk;O111BFFFF;BFBFFF;-
 
2 t__ >=q!===33uQ{{333
 
 "d##     ONN      uH
 H
R &.999
fc***"d5111  "  "  "  $ $ mg
 g
P &.999
fc*** >=q!===33uQ{{333
 
 5]:S111 	 	R	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   8HHHN)r   r   r   r-  r(   r   r   r   r     s(        ` ` ` ` `r   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zej                            dddg          d             ZdS )TestWideToLongc                 N   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<   |	                                |	                                z   g dg dg dg dd}t	          |          }|
                    ddg          g d         }t          |ddgdd          }t          j        ||           d S )N{   r   rU   rV   r   rY   r   ef      @333333?ffffff?皙	@?皙?)A1970A1980B1970B1980r   r   rU   rV   r   r   r2  r3  r4  r5  r6  r7  r8  r9    rA  rA    rB  rB  r   rZ   rG   r   rZ   rG   r   r	   r   yearr   rE  r   r	   r   r	   r   r  jr   r   seedr   r   dictzipr   r   r4   	set_indexr   r   r?   r5   r   r   r+  rQ   r6   s         r   test_simplezTestWideToLong.test_simple  sH   
	sIOOA SS11 SS11 SS11 SS11#eAhh**++ 
 
 84ahhjj(//////888$$$
 
 X&&%%tVn55oooFb3*???
fh/////r   c                     t          g dg dg          }g d|_        ddg}t          ||dd           |ddgk    sJ d S )	N)r   rZ   rG   r      )r   r         	   )r   inc1inc2edu1edu2incedur   agerG  )r   r#   r   )r5   r   stubss      r   
test_stubszTestWideToLong.test_stubs  sd    9::;;;
R$%0000&&&&&&r   c                 P   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<   |	                                |	                                z   g dg dg dg dd}t	          |          }|
                    ddg          g d         }t          |ddgddd          }t          j        ||           d S )Nr1  r   rU   rV   r   rY   r   r2  r3  r4  r5  r6  r7  r8  r9  )zA.1970zA.1980zB.1970zB.1980r   r   r>  r?  r@  rC  rD  rE  rF  r	   r   .r  rH  seprI  rN  s         r   test_separating_characterz(TestWideToLong.test_separating_character  sJ   
	sIOOA!cc22!cc22!cc22!cc22#eAhh**++ 
 
 84ahhjj(//////888$$$
 
 X&&%%tVn55oooFb3*CHHH
fh/////r   c                 N   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<   |	                                |	                                z   g dg dg dg dd}t	          |          }|
                    ddg          g d         }t          |ddgdd          }t          j        ||           d S )Nr1  r   rU   rV   r   rY   r   r2  r3  r4  r5  r6  r7  r8  r9  )zA(quarterly)1970zA(quarterly)1980zB(quarterly)1970zB(quarterly)1980r   r   r>  r?  r@  rC  )r   A(quarterly)B(quarterly)rE  r   rE  )r   rd  re  rd  re  rG  rI  rN  s         r   test_escapable_charactersz(TestWideToLong.test_escapable_characters  sP   
	sIOOA(+$<$<(+$<$<(+$<$<(+$<$<#eAhh**++ 
 
 84ahhjj(::::::888$$$
 
 X&&%%tVn55111
 b>>"BdfUUU
fh/////r   c                 R   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          }t          j        ||           d S )N      ?       @      @      @      @      @X1X2A2010A2011B2010r   r   rn  ro  rn  ro  rh  ri  rj  rk  )r   rZ   r   rZ   )  rv    rw  )r   r	   r   r   rE  rE  rF  r	   r   rG  )r   r   r   r)  rM  r   r   r?   r5   r   r+  rQ   r6   s        r   test_unbalancedzTestWideToLong.test_unbalanced  s    sssD\	 
 
 84)))%%%sBFBF+,,,,,
 
 X&&%%tVn55oooFb3*???
fh/////r   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          }t	          j        |                    d          |                    d                     d S )Na11a22a33a21r}  a23b11b12b13b21b22b23rZ   rG   r   r   r   rR  [   \   ]   )A11A12B11B12BB11BB12BBBXBBBZr   r  r  r  r  r  r  r|  r}  r~  r  r}  r  r  r  r  r  r  r  rZ   rG   r   r   r   rR  rC     r  r     r  r  )r  r  r	   r   BBr   rE  rE  )r  r  r	   r   r  r	   r   r  rG  rZ   axisr   r   rM  r   r   r?   
sort_indexr5   r   rQ   r6   s       r   test_character_overlapz%TestWideToLong.test_character_overlap  s>   ,,,,,,,,,,,,!		!		$$	 	
 
 84000000??????((((((000 

 

 %%tVn556V6V6VWb"2"2"2dfEEE
f//Q/779L9LRS9L9T9TUUUUUr   c           	         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                            ddgd          |_        t          |ddgdd|          }t          j	        |
                    d          |
                    d                     d S )Nznope!rh  ri  rj  rk  rl  rm  rn  ro  rp  r    )r   rq  rr  rs  r   rE  r	   r   rE  )r   rq  rr  rs  r	   r   r   rZ   levelr	   r   r`  r  r   r   r   r   r   rM  
set_levelsr   r   r?   r  )r5   ra  r   r+  rQ   r6   s         r   test_invalid_separatorz%TestWideToLong.test_invalid_separator+  s0   sssD\	 
 
 84	
 	
 X&&--vrx.@AA%%tVn55666
 "22Aq62CCb3*CHHH
f//Q/779L9LRS9L9T9TUUUUUr   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          }t	          j        |                    d          |                    d                     d S )Nr{  r  r  r  r  r  r  )r  r  r  r  r  r  AratingArating_oldr   r  r  r  r  rC  r  )r  r  r	   r   r  r   rE  rE  )r  r  r	   r   r  r  rG  rZ   r  r  r  s       r   test_num_string_disambiguationz-TestWideToLong.test_num_string_disambiguationI  sD    ,,,,,,,,,,,,!		!		'<<+||	 	
 
 84333777??????((((((000 

 

 %%tVn55666
 b"2"2"2dfEEE
f//Q/779L9LRS9L9T9TUUUUUr   c           	         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                            ddgd          |_        t          |ddgd
d          }t          j	        |
                    d          |
                    d                     d S )Nrh  ri  rj  rk  rl  rm  rn  ro  )AoneAtwoBoner   r   r  )r   r  r  r  r   rE  r	   r   rE  r   rZ   r  r	   r   rG  r  r  rx  s        r   test_invalid_suffixtypez&TestWideToLong.test_invalid_suffixtypej  s    c
c
c
D\	 
 
 84	
 	
 X&&--vrx.@AA%%tVn55!22Aq62CCb3*???
f//Q/779L9LRS9L9T9TUUUUUr   c                    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          }t          j        ||           d S )N)	rZ   rZ   rZ   rG   rG   rG   r   r   r   )	rZ   rG   r   rZ   rG   r   rZ   rG   r   )	ffffff@333333@皙@rG   ?ffffff?r  ffffff@ @)	333333@ffffff@r  r7  r  333333@ffffff
@r  r  )famidbirthht1ht2)r  r  r  r  r  r  ri  r7  r  r  r  r  r  r  r  r  r  r  )rZ   rZ   rZ   rZ   rZ   rZ   rG   rG   rG   rG   rG   rG   r   r   r   r   r   r   )rZ   rZ   rG   rG   r   r   rZ   rZ   rG   rG   r   r   rZ   rZ   rG   rG   r   r   )rZ   rG   rZ   rG   rZ   rG   rZ   rG   rZ   rG   rZ   rG   rZ   rG   rZ   rG   rZ   rG   )htr  r  r[  )r  r  r[  r  r  r  r[  rG  r   rM  r   r   r?   r  s       r   test_multiple_id_columnsz'TestWideToLong.test_multiple_id_columns  s    444444BBBDDD	 
 
   ( POOOOOMMM/ 
 
6 %%&?&?&?@@$Hb$7G*<FFF
fh/////r   c                     t          g dg dg dd          }d}t          j        t          |          5  t	          |ddgdd	
           d d d            d S # 1 swxY w Y   d S )N)rZ   rG   r   r   r   )rZ   rZ   rZ   rZ   rZ   )A_A1B_B1r   z3the id variables need to uniquely identify each rowr^   A_AB_Br   colnamerG  r   r`   ra   rb   r   r5   r   rc   s      r   test_non_unique_idvarsz%TestWideToLong.test_non_unique_idvars  s     $__oooOOOTT
 
 D]:S111 	A 	AeU^si@@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As   AA!Ac                     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          }t          j        ||           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  )rZ   rZ   rZ   rG   rG   rG   )r  r  r  r  r  r  )actoractor_fb_likesnumr  r  r  r  r  _r`  r  r  s       r   test_cast_j_intzTestWideToLong.test_cast_j_int  s    LLLPPP$>$>$>$:$:$:JJJ 
 
    #S"R"R)))   
 
* )We$
%
%+ 	, *+w%S
 
 
 	fh/////r   c                     t          ddgddgddgddgd	          }d
}t          j        t          |          5  t	          |ddgdd           d d d            d S # 1 swxY w Y   d S )Nrh  ri  rj  rk  rl  rm  rn  ro  )rq  rr  rs  r	   z,stubname can't be identical to a column namer^   r	   r   r  rG  r  r  s      r   test_identical_stubnamesz'TestWideToLong.test_identical_stubnames  s    sssD\	 
 
 =]:S111 	= 	=c3Z3)<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   AA!$A!c                 (   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          }t          j        ||           d S )Nrh  ri  rj  rk  rl  rm  rn  ro  )treatment_placebotreatment_testresult_placebor	   rt  )placebor  testr  ru  r	   r  r6   	treatmentr	   r  r6   r  z[a-z]+r  r  rH  suffixra  r   r   r)  rM  r   r   r?   r  s       r   test_nonnumeric_suffixz%TestWideToLong.test_nonnumeric_suffix  s    &)3Z#&*#&*D\	 
 
 ---AAARVRV4111	 
 
 %%sI&677;'3)HRU
 
 
 	fh/////r   c                     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          }t          j        ||           d S )Nrn  ro  r   rT  rl  rm  rh  ri  rj  rk  )r	   result_1
result_footreatment_1treatment_foort  )1r   ry   ry   )              "@rl  rm  ru  r  r	   r  r6   r  z.+r  r  r  r  s       r   test_mixed_type_suffixz%TestWideToLong.test_mixed_type_suffix  s    D\F"Cj #Sz"%s 
 
 ---333...111	 
 
 )S)$
%
% 	 ;'3)Dc
 
 
 	fh/////r   c                    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          }t          j        ||           d S )Nrh  ri  rj  rk  rl  rm  r   rT  rn  ro  )ztreatment_1.1ztreatment_2.1z
result_1.2r  r	   )rn  ro  rn  ro  rn  ro  rn  ro  )r5  r5  rh  rh  皙?r  r  r  r  r  r  r	   r  r6   r  z[0-9.]+r  r  r  r  s       r   test_float_suffixz TestWideToLong.test_float_suffix  s    "%s"%s"CjFD\ 
 
 EEECCCS#rvrvrvrvN fbfbfbfc3SQ	 
 
 %%sI&677;'3)ISV
 
 
 	fh/////r   c           
          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          j        |          }t          |dgddgd          }t          |dddgd          }t          j        ||           d S )Nr   rZ   rG   r   r   )r   rZ   rG   r   r   g?r  g      ?rh  gQ?gGz?gQ?g\(\?g333333?gp=
ף?g{Gz?gp=
ף?gq=
ףp?g(\?r6  )node_idr	   PA0PA1PA3PAr  r	   time)	stubnamesr  rH  )r   	from_dictr   r   r?   )r5   	wide_datawide_dfrQ   r6   s        r   test_col_substring_of_stubnamez-TestWideToLong.test_col_substring_of_stubname4  s    
 qQ155cdst<<$3??$4@@$4@@
 
	 %i00D6i=MQWXXXg)S9IVTTT
fh/////r   c                    t          t          d          t          ddd          d          }t          j        t
          t          j        d                    5  |                    dd	           d d d            d S # 1 swxY w Y   d S )
Nr   r      rG   )r   r2   zvalue_name (value) cannot matchr^   r2   ro   )	r   r"   r   r`   ra   rb   reescaper   )r5   r   s     r   test_raise_of_column_name_valuez.TestWideToLong.test_raise_of_column_name_valueD  s     tE{{U2r15E5EFFGG]bi(IJJ
 
 
 	9 	9 GGGG888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   BBBr   Ostringc                    t          ddgddgddgd          }|                    d|i          }t          |d	d
gddd          }t          j        g dd          }t          g dt
          j        gdz  d|          }|j        j        d                             |          }|j        	                    |d          |_        t          j        ||           d S )Nr   2d      ,    )r   za-1za-2r   rU   rV   r  -)r  r  rH  ra  ))r   rZ   )r  rZ   )r   rG   )r  rG   )r   r  )r{   )r  r  r  r  r   r   r   r   r  )r   r   r   r   r   r   r)  r   levelsr  r   r?   )r5   r   r   r6   r   rQ   	new_levels          r   test_missing_stubnamez$TestWideToLong.test_missing_stubnameO  s    sCj#sS#JOOPPYYe}%%Cj
 
 
 444
 
 
 &&&bfX\::
 
 
 N)!,33E::	!229A2FF
fh/////r   N)r   r   r   rO  r]  rb  rf  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r`   r   r   r#  r(   r   r   r/  r/    sf       0 0 02' ' '0 0 040 0 060 0 0.V V V<V V V<V V VBV V V:'0 '0 '0RA A A%0 %0 %0N= = =0 0 0.0 0 0.0 0 000 0 0 	9 	9 	9 [WsHo660 0 760 0 0r   r/  )r  numpyr   r`   pandasr   r   r   r   r   pandas._testing_testingr   fixturer   r%   r)   r-   r/   r   r/  r(   r   r   <module>r)     s   				                              
 
 
      F0 F0 F0 F0 F0 F0 F0 F0Ra a a a a a a aHH0 H0 H0 H0 H0 H0 H0 H0 H0 H0r   