
    Owg                     "   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        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 Zy)    N)	DataFrameIndex
date_rangelreshapemeltwide_to_longc            	      b   t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      } | d
   dkD  j                  t        j                        | d<   | d   dkD  j                  t        j                        | d<   | S )N   )
      ABCDdtypez
2000-01-01r   B)periodsfreqcolumnsindexAr   id1id2)r   nprandomdefault_rngstandard_normalr   listobjectr   astypeint64ress    U/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/reshape/test_melt.pydfr$      s    

		a 009d6l&1r<C
 c(Q,&&rxx0CJc(Q,&&rxx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   r   r   namesr!   s    r#   df1r2      sE    
*,+	
C ;U,CKCKKJr%   c                       y)Nvar r5   r%   r#   var_namer6   ,       r%   c                       y)Nvalr5   r5   r%   r#   
value_namer:   1   r7   r%   c                   X   e Zd Zd Zd Zd Zd Zej                  j                  de
eej                  f      d        Zd Zej                  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                  j                  dddggdgdgddgg      d        Zd Zd Zd Zej                  j                  d dd!g      d"        Zd# Zej                  j                  d$ ej2                   ed%d&d'(             ej2                  g d)d*+       ej2                  g d,      g      d-        Zd. Zd/ Zd0 Zd1 Zd2 Z d3 Z!d4 Z"d5 Z#ej                  j                  d6d7d8g      d9        Z$d: Z%d; Z&d< Z'd= Z(d> Z)y?)@TestMeltc                 \    t        |      }|j                  j                         ddgk(  sJ y )Nvariablevaluer   r   tolist)selfr$   results      r#   test_top_level_methodzTestMelt.test_top_level_method7   s+    b~~$$&:w*????r%   c           	         t        j                  |j                         t        |             t        j                  |j                  ddgddg      t        |ddgddg             t        j                  |j                  ||      t        |||             t        j                  |j                  d      t        |d             y )	Nr   r   r   r   id_vars
value_varsr6   r:   r   	col_level)tmassert_frame_equalr   )rB   r$   r2   r6   r:   s        r#   test_method_signatureszTestMelt.test_method_signatures;   s    
bggib2
GGUENSzGBeU^c
C	

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

 	chhh3T#5KLr%   c                 8   |j                         }|j                  j                         ddgk(  sJ |j                  dg      }|j                  j                         g dk(  sJ |j                  ddg      }|j                  j                         g dk(  sJ y )Nr>   r?   r   )rG   )r   r>   r?   r   r   r   r>   r?   r@   )rB   r$   rC   result1result2s        r#   test_default_col_nameszTestMelt.test_default_col_namesJ   s    ~~$$&:w*????''5''*%%'+GGGG''5%.'1%%'+NNNNr%   c                    |j                  ddgd      }t        |      dk(  sJ |j                  ddgddg      }t        |d   j                         dz  |d   j                         dz  dgdz  dgdz  z   |d   j                         |d   j                         z   dg d	      }t	        j
                  ||       y )
Nr   r   r   rF   r   r   r
   rP   r   )r   lenr   rA   rL   rM   )rB   r$   result3result4	expected4s        r#   test_value_varszTestMelt.test_value_varsT   s    ''5%.S'A7|r!!!''5%.c3Z'H%y'')A-%y'')A- EBJ#3S'..*RW^^-==	 8
	 	gy1r%   type_c                 >   t        |d   j                         dz  |d   j                         dz  dgdz  dgdz  z   |d   j                         |d   j                         z   dg d      }|j                  ddg |d	      
      }t        j                  ||       y )Nr   r
   r   r   r   r   rP   rU   r   r   rF   )r   rA   r   rL   rM   )rB   r[   r$   expectedrC   s        r#   test_value_vars_typeszTestMelt.test_value_vars_typesd   s     %y'')A-%y'')A- EBJ#3S'..*RW^^-==	 8
 %E*<MN
fh/r%   c                     t        |d   dgt        |      z  dgt        |      z  |d   dg d      }|j                  dgdg      }t        j                  ||       y )Nr   ar   br   rc   )ra   r/   r0   r?   rU   rF   )r   rV   r   rL   rM   )rB   r2   r^   rC   s       r#   test_vars_work_with_multiindexz'TestMelt.test_vars_work_with_multiindexs   sh    
Ous3x'us3x'Z	 8
 :,J<H
fh/r%   z(id_vars, value_vars, col_level, expectedr   r   r   r'   r)   r+   r      r
   r(   r*   r,   )r   r/   r?   rb   rc   rg   )rb   r0   r?   c                 X    |j                  |||      }t        j                  ||       y )NrJ   )r   rL   rM   )rB   rG   rH   rK   r^   r2   rC   s          r#   %test_single_vars_work_with_multiindexz.TestMelt.test_single_vars_work_with_multiindex   s)    @ ':C
fh/r%   zid_vars, value_varsra   rd   c                     d}t        j                  t        |      5  |j                  ||       d d d        y # 1 sw Y   y xY w)NzF(id|value)_vars must be a list of tuples when columns are a MultiIndexmatchrF   )pytestraises
ValueErrorr   )rB   rG   rH   r2   msgs        r#   $test_tuple_vars_fail_with_multiindexz-TestMelt.test_tuple_vars_fail_with_multiindex   s=     X]]:S1 	=HHWH<	= 	= 	=s	   ;Ac                    |j                  |      }|j                  j                         ddgk(  sJ |j                  dg|      }|j                  j                         g dk(  sJ |j                  ddg|      }|j                  j                         g dk(  sJ |j                  ddgd	|
      }|j                  j                         g dk(  sJ |j                  ddgd	dg|
      }t        d|d   j                         dz  d|d   j                         dz  |d	gdz  dgdz  z   d|d	   j                         |d   j                         z   idd|dg      }t	        j
                  ||       y )N)r6   r4   r?   r   rG   r6   )r   r4   r?   r   )r   r   r4   r?   r   )rG   rH   r6   r   r
   r   rU   r   r   rA   r   rL   rM   )	rB   r$   r6   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''5%.8'D%%'+IIII''5%.S8'T%%'+IIII''ENSzH  
 r%y'')A-r%y'')A-3%"*urz1"S'..*RW^^-==	 E8W5
	 	gy1r%   c                    |j                  |      }|j                  j                         ddgk(  sJ |j                  dg|      }|j                  j                         g dk(  sJ |j                  ddg|      }|j                  j                         g dk(  sJ |j                  ddgd	|
      }|j                  j                         g dk(  sJ |j                  ddgd	dg|
      }t        d|d   j                         dz  d|d   j                         dz  dd	gdz  dgdz  z   ||d	   j                         |d   j                         z   iddd|g      }t	        j
                  ||       y )N)r:   r>   r9   r   rG   r:   )r   r>   r9   r   )r   r   r>   r9   r   )rG   rH   r:   r   r
   r   rU   rt   )	rB   r$   r:   result10result11result12result13result14
expected14s	            r#   test_custom_value_namezTestMelt.test_custom_value_name   s   77j71&&(Z,????77E7z7B&&(,FFFF77E5>j7I&&(,MMMM77ENsz  
 &&(,MMMM77ENSzj  
 r%y'')A-r%y'')A-SEBJ#3RW^^-30@@	 E:z:

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

 	h
3wwy!99;&&(UG,<<<<r%   rK   r/   c                 j    |j                  |      }|j                  j                         ddgk(  sJ y )NrJ   r/   r?   r@   )rB   rK   r2   r"   s       r#   test_col_levelzTestMelt.test_col_level  s2    hhh+{{!!#w'7777r%   c                 f    |j                         }|j                  j                         g dk(  sJ y )N)r/   r0   r?   r@   )rB   r2   r"   s      r#   test_multiindexzTestMelt.test_multiindex  s)    hhj{{!!#'>>>>r%   col2010   z
US/Pacific)r   tz)rb   rc   crb   dcategoryr   )r   rg   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                  ||       y )Nr   )rg   r   r   r   r   )klassr   attr1attr2Tignore_indexr   r   	attributer?   r   r
   r   r   r   rg   r
      )r   r   r   r?   )
r   rangepdconcatSeriesr   r   r   rL   rM   )rB   r   r$   expected_valuerC   r^   s         r#   test_pandas_dtypeszTestMelt.test_pandas_dtypes  s     Ahs_sS
 BIIo$>#DSWX%(;7
 a>A%99cUQYT:9q=G9q=0!	
 B
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
                  ||       y )	Nrg   r
   XYr]   r   r   )r   r>   r?   )r   r   Categoricalr   rL   rM   )rB   datarC   r^   s       r#   test_preserve_categoryzTestMelt.test_preserve_category;  sq    1vBNNC:,FGHdSEC5)..#s,3*PQSTvV
 	fh/r%   c                    t        t        j                  j                  d      j	                  d      t        d            }d}t        j                  t        |      5  |j                  ddgd	d
g       d d d        t        j                  t        |      5  |j                  ddgdd
g       d d d        t        j                  t        |      5  |j                  g ddd
g       d d d        |j                         }t        d      t        d      g|_        t        j                  t        |      5  |j                  dgdg       d d d        t        j                  t        |      5  |j                  dgdgd       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ixY w# 1 sw Y   y xY w)Nr
   )r   r   abcdrU   zEThe following id_vars or value_vars are not present in the DataFrame:rk   rb   rc   Cr   r   r   )rb   rc   not_hereor_therer   )Erb   rd   Fr   rJ   )r   r   r   r   r   r   rm   rn   KeyErrorr   r   r   )rB   r$   rp   multis       r#    test_melt_missing_columns_raisesz)TestMelt.test_melt_missing_columns_raisesE  s    II!!!$44V<d6l

 V]]83/ 	,GGS#Jc
+	, ]]83/ 	,GGS#Jc
+	, ]]
 	D GG6c
C		D 	ftF|4]]83/ 	3JJ
|j\2	3 ]]83/ 	2JJuseqJ1	2 	2)	, 	,	, 	,	D 	D	3 	3	2 	2s<    FFF*9F61GFF'*F36F?G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                  ||       y )Nr   barrg   r
   )r   rb   rc   r   r   rb   rc   r   rF   bd)r   rb   r>   r?   )r   r   r   rL   rM   rB   r$   rC   r^   s       r#   test_melt_mixed_int_str_id_varsz(TestMelt.test_melt_mixed_int_str_id_varsh  sr    E7%s!EFb1c(SzB!5'A+4:QRTUPVW
 	fh/r%   c                     t        dgdgd      }t        |ddg      }t        ddgddgd      }t        j                  ||       y )Nr   r   )r   rb   r   rb   )rH   r>   r?   r   r   rL   rM   r   s       r#   "test_melt_mixed_int_str_value_varsz+TestMelt.test_melt_mixed_int_str_value_varsq  sL    E7%12baX.1c(eU^L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                  ||       y )Nr   rg   r   r   firstr   Fr   r   r   r   r   r   s       r#   test_ignore_indexzTestMelt.test_ignore_indexx  sX    sA3/yAbu-1a&9'7AS
 	fh/r%   c                 F   t         j                  j                  ddgddg      }t        ddgdd	gd
|      }t	        |d      }t         j                  j                  ddgdz  ddg      }t        dgdz  dgdz  z   g dd|      }t        j                  ||       y )N)r   second)r   thirdbazfoobarr1   r   rg   r
   r   r   r   Fr   r   r   r   r   )r   
MultiIndexfrom_tuplesr   r   rL   rM   rB   r   r$   rC   expected_indexr^   s         r#   test_ignore_multiindexzTestMelt.test_ignore_multiindex  s    )) "45eX=N * 
 1vq!f5UCbu-22 "459%AR 3 
 1w{2\J 

 	fh/r%   c                     t        ddgdd      }t        ddgdd	gd
|      }t        |d      }t        ddgdz  dd      }t        g dg dd|      }t        j                  ||       y )Nr   r   r   r   )r   r   r   rg   r
   r   )xyr   Fr   )r   r   r   r   r   r   )r   r   r   rL   rM   r   s         r#   test_ignore_index_name_and_typez(TestMelt.test_ignore_index_name_and_type  sw    uenJUCaV1a&1?bu-u~1%P-E 

 	fh/r%   c                     t        g dgg d      }|j                  dgdg      }t        g dg dgg d	      }t        j                  ||       y )
N)idr
   r   )rb   rc   rc   rU   rb   rc   rF   )r   rc   r
   )r   rc   r   )rb   r>   r?   r   r   s       r#    test_melt_with_duplicate_columnsz)TestMelt.test_melt_with_duplicate_columns  sM    ~?#C59^,6P
 	fh/r%   r   Int8Int64c                    t        t        j                  ddgd      t        j                  ddg|      d      }|j                         }t        g dt        j                  g d	|      d
      }t	        j
                  ||       y )Nrg   r
   r   r   r   r   rb   rc   )rb   rb   rc   rc   )rg   r
   r   r   r   )r   r   r   r   rL   rM   )rB   r   r$   rC   r^   s        r#   test_melt_ea_dtypezTestMelt.test_melt_ea_dtype  sv     YY1vV4YY1vU3
 0<u=
 	fh/r%   c                 6   t        dddddddddd	d
dd      }|j                  j                  d      |_        |j                  dgdg      }t        t	        d      t        j                  dgdz  d      g dd      }t        j                  ||       y )Nrb   rc   r   rf   rg   r   r   r
   r      )r   r   r   zstring[python]r   r   rF   r.   r   )rg   r   r   )r   r>   r?   )	r   r   r   r   r   r   r   rL   rM   r   s       r#   test_melt_ea_columnszTestMelt.test_melt_ea_columns  s    -qQ'qQ'
 ZZ&&'78
#C59%[IIseai7GH"
 	fh/r%   c                    t        dt        j                  dd      t        j                  dd      ddt        j                  dd      t        j                  dd      dgd	d
g      }|j                  dgddgdd      }t        ddddddddddt        j                  dd      t        j                  dd      t        j                  dd      t        j                  dd      dd      }t	        j
                  ||       y )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dater   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   rL   rM   r   s       r#   test_melt_preserves_datetimez%TestMelt.test_melt_preserves_datetime  s    !"$,,|"M "\l K !"$,,|"M "\l K 6"
 H$j1 	  
  Tdt<##!!	 ||$><P||$><P||$><P||$><P	
" 	fh/r%   c                     t        g dg ddg d      }|j                  ddd	      }t        g dd
gdz  g dd      }t        j                  ||       y Nrg   r
   r   r   r   r   r   112233r   rb   r   rg   r   rc   r   )rb   r   rg   r   r   s       r#   #test_melt_allows_non_scalar_id_varsz,TestMelt.test_melt_allows_non_scalar_id_vars  s^     y1$
   

 9#yIJ
fh/r%   c                     t        g dg ddg d      }|j                  dgdd	      }t        g dd
gdz  g dd      }t        j                  ||       y r   r   r   s       r#   $test_melt_allows_non_string_var_namez-TestMelt.test_melt_allows_non_string_var_name  s`     y1$
 E  

 9#yIJ
fh/r%   c                     t        g dg ddg d      }t        j                  t        d      5  |j	                  dgd	d
g       d d d        y # 1 sw Y   y xY w)Nr   r   r   r   r   z.* must be a scalar.rk   rb   rg   r
   rs   )r   rm   rn   ro   r   rB   r$   s     r#   $test_melt_non_scalar_var_name_raisesz-TestMelt.test_melt_non_scalar_var_name_raises  sS     y1$
 ]]:-DE 	4GGSEQFG3	4 	4 	4s   AAN)*__name__
__module____qualname__rD   rN   rS   rZ   rm   markparametrizetupler   r   arrayr_   re   r   ri   rq   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r5   r%   r#   r<   r<   6   sJ   @MO2  [[WudBHH&=>0 ?00 [[2 !)iIF#&337%.8!H	 !)iIF#&337%.8!H		
:0;:0 [[*&\:&$	
==264:(=T [[[1e*58 68? [[BIIj|DEBII/zBBIIo&	
00(0!2F0000$00 [[Wvw&780 90"0('0R004r%   r<   c                       e Zd Zd Zy)TestLreshapec                    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        |      }t        dd      D cg c]  }d|d
 c}t        dd      D cg c]  }d|d
 c}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d0d1d2dt         j                  ddddt         j                  t         j                  ddgd"}t        ||j
                  #      }t        j                  ||       t        dd3      D cg c]  }d|d
 c}t        dd      D cg c]  }d|d
 c}d}d4}t        j                  t        |5      5  t	        ||       d d d        y c c}w c c}w c c}w c c}w # 1 sw Y   y xY w)6N)	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wt3rg   r   visitdtr   wt)r7  r8  )r  r  r  r  r  r  r  r  r  r  r  r  )r  r  r  r  r  r  r  r  r  r  r  r  )r  r  r  r  r  r  r  r  r  r  r  r  )r  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   r0  r7  r8  rU   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  r9  r:  r;  r<  r   z$All column lists must be same lengthrk   )r   nanr   r   r   r   rL   rM   rm   rn   ro   )	rB   r   r$   ispecrC   exp_dataexprp   s	            r#   
test_pairszTestLreshape.test_pairs  sr    6+C %bffk;T$bffbffk;O1BFFFFF;BFFBFFFF;-
2 t_ 27q!=A'!A=',Q{3!R!u:3
 "d# OuH
R &..9
fc*"d51"""$ $ mg
P &..9
fc* 27q!=A'!A=',Q{3!R!u:3
 5]]:S1 	R	 	E >3z >3	 	s$   I8I$II0II#N)r  r  r  rC  r5   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,                  j/                  dddg      d        Zy)TestWideToLongc                    t         j                  j                  d      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<   |j                         |j                         z   g dg dg dg dd}t	        |      }|j                  ddg      g d   }t        |ddgdd      }t        j                  ||       y )Nr
   r   rb   rc   r   rf   r   ef      @333333?ffffff?皙	@?皙?)A1970A1980B1970B1980r   r   rb   rc   r   r   rG  rH  rI  rJ  rK  rL  rM  rN    rV  rV    rW  rW  r   rg   r
   r   rg   r
   r   r   r   yearr   rZ  r   r   r   r   r   r?  jr   r   r   r   r   dictzipr   r   rA   	set_indexr   rL   rM   rB   r   r$   rA  r^   rC   s         r#   test_simplezTestWideToLong.test_simple  s    II!!!$44Q7 SS1 SS1 SS1 SS1#eAh*+
 884ahhj(//8$
 X&%%tVn5oFb3*?
fh/r%   c                 p    t        g dg dg      }g d|_        ddg}t        ||dd       |ddgk(  sJ y )	N)r   rg   r
   r      )r   r   r      	   )r   inc1inc2edu1edu2incedur   ager\  )r   r   r   )rB   r$   stubss      r#   
test_stubszTestWideToLong.test_stubs  sA    9:;
R$%0&&&r%   c                    t         j                  j                  d      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<   |j                         |j                         z   g dg dg dg dd}t	        |      }|j                  ddg      g d   }t        |ddgddd      }t        j                  ||       y )Nr
   r   rb   rc   r   rf   r   rG  rH  rI  rJ  rK  rL  rM  rN  )zA.1970zA.1980zB.1970zB.1980r   r   rS  rT  rU  rX  rY  rZ  r[  r   r   .r?  r]  sepr^  rb  s         r#   test_separating_characterz(TestWideToLong.test_separating_character#  s     II!!!$44Q7!cc2!cc2!cc2!cc2#eAh*+
 884ahhj(//8$
 X&%%tVn5oFb3*CH
fh/r%   c                    t         j                  j                  d      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<   |j                         |j                         z   g dg dg dg dd}t	        |      }|j                  ddg      g d   }t        |ddgdd      }t        j                  ||       y )Nr
   r   rb   rc   r   rf   r   rG  rH  rI  rJ  rK  rL  rM  rN  )zA(quarterly)1970zA(quarterly)1980zB(quarterly)1970zB(quarterly)1980r   r   rS  rT  rU  rX  )r   A(quarterly)B(quarterly)rZ  r   rZ  )r   rw  rx  rw  rx  r\  r^  rb  s         r#   test_escapable_charactersz(TestWideToLong.test_escapable_characters=  s    II!!!$44Q7(+$<(+$<(+$<(+$<#eAh*+
 884ahhj(::8$
 X&%%tVn51
 b>>"BdfU
fh/r%   c                 F   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        |      }|j	                  d
dg      g d   }t        |ddgd
d      }t        j                  ||       y )N      ?       @      @      @      @      @X1X2A2010A2011B2010r   r   r  r  r  r  r{  r|  r}  r~  )r   rg   r   rg   )  r    r  )r   r   r   r   rZ  rZ  r[  r   r   r\  )r   r   r   r>  ra  r   rL   rM   rB   r$   rA  r^   rC   s        r#   test_unbalancedzTestWideToLong.test_unbalancedW  s    sssD\	
 884)%sBFFBFF+,
 X&%%tVn5oFb3*?
fh/r%   c                 j   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      }|j                  d	dg      g d   }t        |g dd	d      }t	        j
                  |j                  d      |j                  d             y )Na11a22a33a21r  a23b11b12b13b21b22b23r   r   [   \   ]   )A11A12B11B12BB11BB12BBBXBBBZr   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rg   r
   r   r   r   r   rX     r  r     r  r  )r  r  r   r   BBr   rZ  rZ  )r  r  r   r   r  r   r   r  r\  rg   axisr   r   ra  r   rL   rM   
sort_indexrB   r$   r^   rC   s       r#   test_character_overlapz%TestWideToLong.test_character_overlapn  s    ,,,,!!$$	
 88400??((0

 %%tVn56VWb"2dfE
f//Q/79L9LRS9L9T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        |      j                  dt        j                  i      }|j                  ddg      g d   }|j                  j                  ddgd      |_        t        |ddgdd|      }t        j                  |j                  d      |j                  d             y )Nznope!r{  r|  r}  r~  r  r  r  r  r  r    )r   r  r  r  r   rZ  r   r   rZ  )r   r  r  r  r   r   r   rg   levelr   r   rs  r  r   r   r   r   r    ra  
set_levelsr   rL   rM   r  )rB   rt  r$   rA  r^   rC   s         r#   test_invalid_separatorz%TestWideToLong.test_invalid_separator  s    sssD\	
 884	
 X&--vrxx.@A%%tVn56
 "22Aq62Cb3*CH
f//Q/79L9LRS9L9TUr%   c                 j   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      }|j                  d	dg      g d   }t        |g dd	d      }t	        j
                  |j                  d      |j                  d             y )Nr  r  r  r  r   r   r  )r  r  r  r  r  r  AratingArating_oldr   r  r  r  r  rX  r  )r  r  r   r   r  r   rZ  rZ  )r  r  r   r   r  r  r\  rg   r  r  r  s       r#   test_num_string_disambiguationz-TestWideToLong.test_num_string_disambiguation  s     ,,,,!!'+	
 88437??((0

 %%tVn56
 b"2dfE
f//Q/79L9LRS9L9T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        |      j                  dt        j                  i      }|j                  d
dg      }|j                  j                  ddgd      |_        t        |ddgd
d      }t        j                  |j                  d      |j                  d             y )Nr{  r|  r}  r~  r  r  r  r  )AoneAtwoBoner   r   r  )r   r  r  r  r   rZ  r   r   rZ  r   rg   r  r   r   r\  r  r  r  s        r#   test_invalid_suffixtypez&TestWideToLong.test_invalid_suffixtype  s     c
c
c
D\	
 884	
 X&--vrxx.@A%%tVn5!22Aq62Cb3*?
f//Q/79L9LRS9L9TUr%   c                     t        g dg dg dg dd      }t        g dg dg dg d	d
      }|j                  g d      dg   }t        |dddgd      }t        j                  ||       y )N)	rg   rg   rg   r
   r
   r
   r   r   r   )	rg   r
   r   rg   r
   r   rg   r
   r   )	ffffff@333333@皙@r
   ?ffffff?r  ffffff@ @)	333333@ffffff@r  rL  r  333333@ffffff
@r  r  )famidbirthht1ht2)r  r  r  r  r  r  r|  rL  r  r  r  r  r  r  r  r  r  r  )rg   rg   rg   rg   rg   rg   r
   r
   r
   r
   r
   r
   r   r   r   r   r   r   )rg   rg   r
   r
   r   r   rg   rg   r
   r
   r   r   rg   rg   r
   r
   r   r   )rg   r
   rg   r
   rg   r
   rg   r
   rg   r
   rg   r
   rg   r
   rg   r
   rg   r
   )htr  r  rn  )r  r  rn  r  r  r  rn  r\  r   ra  r   rL   rM   r  s       r#   test_multiple_id_columnsz'TestWideToLong.test_multiple_id_columns  s~    44BD	
 ( POM/
6 %%&?@$Hb$7G*<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        y # 1 sw Y   y xY w)N)rg   r
   r   r   r   )rg   rg   rg   rg   rg   )A_A1B_B1r   z3the id variables need to uniquely identify each rowrk   A_AB_Br   colnamer\  r   rm   rn   ro   r   rB   r$   rp   s      r#   test_non_unique_idvarsz%TestWideToLong.test_non_unique_idvars  sY     $oOT
 D]]:S1 	AeU^si@	A 	A 	As   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      j                  ddg      }t        |ddgddd      }t        j                  ||       y )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  )rg   rg   rg   r
   r
   r
   )r  r  r  r  r  r  )actoractor_fb_likesnumr  r  r  r  r  _rs  r  r  s       r#   test_cast_j_intzTestWideToLong.test_cast_j_int  s    LP$>$:J
  #S)
* )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        y # 1 sw Y   y xY w)Nr{  r|  r}  r~  r  r  r  r  )r  r  r  r   z,stubname can't be identical to a column namerk   r   r   r  r\  r  r  s      r#   test_identical_stubnamesz'TestWideToLong.test_identical_stubnamesB  si    sssD\	
 =]]:S1 	=c3Z3)<	= 	= 	=s   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      }|j                  ddg      }t	        |ddgdddd      }t        j                  ||       y )Nr{  r|  r}  r~  r  r  r  r  )treatment_placebotreatment_testresult_placebor   r  )placebor  testr  r  r   r  rC   	treatmentr   r  rC   r  z[a-z]+r  r?  r]  suffixrt  r   r   r>  ra  r   rL   rM   r  s       r#   test_nonnumeric_suffixz%TestWideToLong.test_nonnumeric_suffixO  s    &)3Z#&*#&*D\	
 -ARVVRVV41	
 %%sI&6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      j                  ddg      }t        |ddgdddd      }t        j                  ||       y )Nr  r  r   rg  r  r  r{  r|  r}  r~  )r   result_1
result_footreatment_1treatment_foor  )1r  r   r   )              "@r  r  r  r  r   r  rC   r  z.+r  r  r  r  s       r#   test_mixed_type_suffixz%TestWideToLong.test_mixed_type_suffixf  s    D\F"Cj #Sz"%s
 -3.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      }|j                  ddg      }t	        |ddgdddd      }t        j                  ||       y )Nr{  r|  r}  r~  r  r  r   rg  r  r  )ztreatment_1.1ztreatment_2.1z
result_1.2r  r   )r  r  r  r  r  r  r  r  )rJ  rJ  r{  r{  皙?r  r  r  r  r  r  r   r  rC   r  z[0-9.]+r  r  r
  r  s       r#   test_float_suffixz TestWideToLong.test_float_suffix}  s    "%s"%s"CjFD\
 ECS#rvvrvvrvvrvvN ffbffbffbffc3SQ	
 %%sI&6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                  ||       y )Nr   rg   r
   r   r   )r   rg   r
   r   r   g?r  g      ?r{  gQ?gGz?gQ?g\(\?g333333?gp=
ף?g{Gz?gp=
ף?gq=
ףp?g(\?rK  )node_idr   PA0PA1PA3PAr  r   time)	stubnamesr?  r]  )r   	from_dictr   rL   rM   )rB   	wide_datawide_dfr^   rC   s        r#   test_col_substring_of_stubnamez-TestWideToLong.test_col_substring_of_stubname  s    
 qQ15cdst<$3?$4@$4@
	 %%i0D6i=MQWXg)S9IVT
fh/r%   c                     t        t        d      t        ddd      d      }t        j                  t
        t        j                  d            5  |j                  dd	       d d d        y # 1 sw Y   y xY w)
Nr-   r      r
   )r   r?   zvalue_name (value) cannot matchrk   r?   r}   )	r   r   r   rm   rn   ro   reescaper   r   s     r#   test_raise_of_column_name_valuez.TestWideToLong.test_raise_of_column_name_value  sb     tE{U2r15EFG]]bii(IJ
 	9 GGGG8	9 	9 	9s   A..A7r   Ostringc                    t        ddgddgddgd      }|j                  d|i      }t        |d	d
gddd      }t        g dd      }t        g dt        j
                  gdz  d|      }|j                  j                  d   j                  |      }|j                  j                  |d      |_        t        j                  ||       y )Nr  2d      ,    )r   za-1za-2r   rb   rc   r  -)r  r?  r]  rt  ))r  rg   )r,  rg   )r  r
   )r,  r
   )r   r  )r   )r-  r.  r/  r0  r   r   r   r   r  )r   r   r   r   r   r>  r   levelsr  rL   rM   )rB   r   r$   rC   r   r^   	new_levels          r#   test_missing_stubnamez$TestWideToLong.test_missing_stubname  s     sCj#sS#JOPYYe}%Cj
 4
 &bffX\:
 NN))!,33E:	!229A2F
fh/r%   N)r  r  r  rc  rp  ru  ry  r  r  r  r  r  r  r  r  r  r  r  r  r#  r(  rm   r  r  r4  r5   r%   r#   rE  rE     s    00'04040.V<V<VBV:'0RA%0N=0.0.000 	9 [[WsHo60 70r%   rE  c                     t        j                  d       t        ddiddiddiddiddid      } | j                  j	                  d      | _        t        | ddd	d
d      }t        ddgddgddggt        ddgt              t        j                  j                  g dt        g dd      gdd	g            }t        j                  ||       y )Npyarrowr   rg   r
   )IDR_test1R_test2R_test3Dzstring[pyarrow_numpy]Rr7  	UNPIVOTEDr  z.*)r  r?  r]  rt  r	  r;  r   )rg   rg   rg   )test1test2test3r   r   )rm   importorskipr   r   r   r   r   r   r   r   from_arraysrL   rM   )r$   rC   r^   s      r#   (test_wide_to_long_pyarrow_string_columnsrC    s    
	"	a&1v1v1vQ	

B ""#:;BJ
cT[c$F 
Q!Q!Q sCj/mm''19PQ % ( 

H &(+r%   )r&  numpyr   rm   pandasr   r   r   r   r   r   r   pandas._testing_testingrL   fixturer$   r2   r6   r:   r<   r	  rE  rC  r5   r%   r#   <module>rI     s    	        
 
    c4 c4La aHF0 F0R,r%   