
    o[we                        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    >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                   `   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: 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 )NrG   )r      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default_rngstandard_normalr"   r`   ra   KeyErrorformatr   rz   r#   )r5   r   rc   multis       r    test_melt_missing_columns_raisesz)TestMelt.test_melt_missing_columns_raises?  s    I!!!$$44V<<d6ll
 
 

 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,#D

DDE,,E03E0HH
H>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_varsf  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_varso  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_indexv  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   c                 R   t          dddddddddd	d
dd          }|j                            d          |_        |                    dgdg          }t          t	          d          t          j        dgdz  d          g dd          }t          j        ||           d S )NrU   rV   r   rY   rZ   r   r   rG   r      )r	   r   r   zstring[python]r	   r   r9   r   r   )rZ   r   r   )r	   r1   r2   )	r   r#   r   r   r"   r   r   r   r?   r   s       r   test_melt_ea_columnszTestMelt.test_melt_ea_columns  s    --qQ''qQ'' 
 
 Z&&'788
#C599%[[Iseai7GHHH" 
 
 	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/   r/   0   s       @ @ @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 %2N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 0 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   r1  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                 6   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<   |	                                |	                                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 )NrG   r   rU   rV   r   rY   r   ef      @333333?ffffff?皙	@?皙?)A1970A1980B1970B1980r   r   rU   rV   r   r   r5  r6  r7  r8  r9  r:  r;  r<    rD  rD    rE  rE  r   rZ   rG   r   rZ   rG   r   r	   r   yearr   rH  r   r	   r   r	   r   r  jr   r   r   r   r   dictzipr   r   r4   	set_indexr   r   r?   r5   r   r   r/  rQ   r6   s         r   test_simplezTestWideToLong.test_simple  sD   I!!!$$44Q77 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      	   )r   inc1inc2edu1edu2incedur   agerJ  )r   r#   r   )r5   r   stubss      r   
test_stubszTestWideToLong.test_stubs  sd    9::;;;
R$%0000&&&&&&r   c                 8   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<   |	                                |	                                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 )NrG   r   rU   rV   r   rY   r   r5  r6  r7  r8  r9  r:  r;  r<  )zA.1970zA.1980zB.1970zB.1980r   r   rA  rB  rC  rF  rG  rH  rI  r	   r   .r  rK  seprL  rP  s         r   test_separating_characterz(TestWideToLong.test_separating_character  sH    I!!!$$44Q77!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                 6   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<   |	                                |	                                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 )NrG   r   rU   rV   r   rY   r   r5  r6  r7  r8  r9  r:  r;  r<  )zA(quarterly)1970zA(quarterly)1980zB(quarterly)1970zB(quarterly)1980r   r   rA  rB  rC  rF  )r   A(quarterly)B(quarterly)rH  r   rH  )r   re  rf  re  rf  rJ  rL  rP  s         r   test_escapable_charactersz(TestWideToLong.test_escapable_characters  sL   I!!!$$44Q77(+$<$<(+$<$<(+$<$<(+$<$<#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   ro  rp  ro  rp  ri  rj  rk  rl  )r   rZ   r   rZ   )  rw    rx  )r   r	   r   r   rH  rH  rI  r	   r   rJ  )r   r   r   r-  rO  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   r   [   \   ]   )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   r   rF     r  r     r  r  )r  r  r	   r   BBr   rH  rH  )r  r  r	   r   r  r	   r   r  rJ  rZ   axisr   r   rO  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!ri  rj  rk  rl  rm  rn  ro  rp  rq  r    )r   rr  rs  rt  r   rH  r	   r   rH  )r   rr  rs  rt  r	   r   r   rZ   levelr	   r   ra  r  r   r   r   r   r   rO  
set_levelsr   r   r?   r  )r5   rb  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  rF  r  )r  r  r	   r   r  r   rH  rH  )r  r  r	   r   r  r  rJ  rZ   r  r  r  s       r   test_num_string_disambiguationz-TestWideToLong.test_num_string_disambiguation]  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 )Nri  rj  rk  rl  rm  rn  ro  rp  )AoneAtwoBoner   r   r  )r   r  r  r  r   rH  r	   r   rH  r   rZ   r  r	   r   rJ  r  r  ry  s        r   test_invalid_suffixtypez&TestWideToLong.test_invalid_suffixtype~  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  r:  r  333333@ffffff
@r  r  )famidbirthht1ht2)r  r  r  r  r  r  rj  r:  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\  rJ  r   rO  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   colnamerJ  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  _ra  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 )Nri  rj  rk  rl  rm  rn  ro  rp  )rr  rs  rt  r	   z,stubname can't be identical to a column namer^   r	   r   r  rJ  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 )Nri  rj  rk  rl  rm  rn  ro  rp  )treatment_placebotreatment_testresult_placebor	   ru  )placebor  testr  rv  r	   r  r6   	treatmentr	   r  r6   r  z[a-z]+r  r  rK  suffixrb  r   r   r-  rO  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 )Nro  rp  r   rU  rm  rn  ri  rj  rk  rl  )r	   result_1
result_footreatment_1treatment_fooru  )1r  ry   ry   )              "@rm  rn  rv  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 )Nri  rj  rk  rl  rm  rn  r   rU  ro  rp  )ztreatment_1.1ztreatment_2.1z
result_1.2r  r	   )ro  rp  ro  rp  ro  rp  ro  rp  )r8  r8  ri  ri  皙?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_suffix0  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      ?ri  gQ?gGz?gQ?g\(\?g333333?gp=
ף?g{Gz?gp=
ף?gq=
ףp?g(\?r9  )node_idr	   PA0PA1PA3PAr	  r	   time)	stubnamesr  rK  )r   	from_dictr   r   r?   )r5   	wide_datawide_dfrQ   r6   s        r   test_col_substring_of_stubnamez-TestWideToLong.test_col_substring_of_stubnameH  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_valueX  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  rK  rb  ))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_stubnamec  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   rQ  r^  rc  rg  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r`   r   r   r$  r(   r   r   r3  r3    sf       0 0 00' ' '0 0 040 0 04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   r3  )r  numpyr   r`   pandasr   r   r   r   r   pandas._testing_testingr   fixturer   r%   r)   r-   r/   r   r3  r(   r   r   <module>r*     s   				                              
 
 
      \0 \0 \0 \0 \0 \0 \0 \0~a a a a a a a aHF0 F0 F0 F0 F0 F0 F0 F0 F0 F0r   