
    A>iW                     "   S SK r S SKrS SKrS SKrS SKJrJrJrJ	r	J
r
Jr  S SKJr  \R                  S 5       r\R                  S 5       r\R                  S 5       r\R                  S 5       r " S S5      r " S	 S
5      r " S S5      rS rg)    N)	DataFrameIndex
date_rangelreshapemeltwide_to_longc            
      J   [        [        R                  R                  S5      R	                  S5      [        [        S5      5      [        SSSS9S9n U S	   S
:  R                  [        R                  5      U S'   U S   S
:  R                  [        R                  5      U S'   U $ )N   )
      ABCDz
2000-01-01r   B)periodsfreqcolumnsindexAr   id1id2)
r   nprandomdefault_rngstandard_normalr   listr   astypeint64ress    ]/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/reshape/test_melt.pydfr!      s    

		a 009d6l#r<C
 c(Q,&&rxx0CJc(Q,&&rxx0CJJ    c                      [        / SQ/ SQ/ SQ/5      n [        S5      [        S5      /U l        SS/U R                  l        U $ )N)5:?StgKԲ?)Uy$> M?gK)i<8b->?ghBĒABCabcCAPlow)r   r   r   namesr   s    r    df1r/      sE    
*,+	
C ;U,CKCKKJr"   c                      g)Nvar r2   r"   r    var_namer3   ,       r"   c                      g)Nvalr2   r2   r"   r    
value_namer7   1   r4   r"   c                      \ rS rSrS rS rS rS r\R                  R                  S\\\R                  45      S 5       rS r\R                  R                  S	S
/S/SSSSS.SSSS.SSSS.S.4S/S/SSSSS.SSSS.SSSS.S.4/5      S 5       r\R                  R                  SSS//S/S/SS//5      S 5       rS rS rS  r\R                  R                  S!SS"/5      S# 5       rS$ r\R                  R                  S%\" S&S'S(S)9\R4                  " / S*Q5      / S+Q/5      S, 5       rS- rS. rS/ rS0 rS1 r S2 r!S3 r"S4 r#\R                  R                  S5S6S7/5      S8 5       r$S9 r%S: r&S; r'S< r(S= r)S> r*S? r+S@ r,SAr-gB)CTestMelt6   c                 ^    [        U5      nUR                  R                  5       SS/:X  d   eg )Nvariablevaluer   r   tolist)selfr!   results      r    test_top_level_methodTestMelt.test_top_level_method7   s+    b~~$$&:w*????r"   c           	      |   [         R                  " UR                  5       [        U5      5        [         R                  " UR                  SS/SS/S9[        USS/SS/S95        [         R                  " UR                  X4S9[        XUS95        [         R                  " UR                  SS9[        USS95        g )	Nr   r   r   r   id_vars
value_varsr3   r7   r   	col_level)tmassert_frame_equalr   )r@   r!   r/   r3   r7   s        r    test_method_signaturesTestMelt.test_method_signatures;   s    
bggib2
GGUENSzGBeU^c
C	

 	GGXG=:>	

 	chhh3T#5KLr"   c                 2   UR                  5       nUR                  R                  5       SS/:X  d   eUR                  S/S9nUR                  R                  5       / SQ:X  d   eUR                  SS/S9nUR                  R                  5       / SQ:X  d   eg )Nr<   r=   r   )rF   )r   r<   r=   r   r   r   r<   r=   r>   )r@   r!   rA   result1result2s        r    test_default_col_namesTestMelt.test_default_col_namesJ   s    ~~$$&:w*????''5''*%%'+GGGG''5%.'1%%'+NNNNr"   c                 p   UR                  SS/SS9n[        U5      S:X  d   eUR                  SS/SS/S9n[        US   R                  5       S-  US   R                  5       S-  S/S-  S/S-  -   US   R                  5       US   R                  5       -   S./ SQS	9n[        R
                  " X45        g )
Nr   r   r   rE   r   r   r
   rP   r   )r   lenr   r?   rK   rL   )r@   r!   result3result4	expected4s        r    test_value_varsTestMelt.test_value_varsT   s    ''5%.S'A7|r!!!''5%.c3Z'H%y'')A-%y'')A- EBJ#3S'..*RW^^-==	 8
	 	g1r"   type_c                 2   [        US   R                  5       S-  US   R                  5       S-  S/S-  S/S-  -   US   R                  5       US   R                  5       -   S./ SQS9nUR                  SS/U" S	5      S
9n[        R                  " XC5        g )Nr   r
   r   r   r   r   rP   rV   r   r   rE   )r   r?   r   rK   rL   )r@   r]   r!   expectedrA   s        r    test_value_vars_typesTestMelt.test_value_vars_typesd   s     %y'')A-%y'')A- EBJ#3S'..*RW^^-==	 8
 %E*<MN
f/r"   c                     [        US   S/[        U5      -  S/[        U5      -  US   S./ SQS9nUR                  S/S/S9n[        R                  " X25        g )Nr   ar   br   rf   )rd   r,   r-   r=   rV   rE   )r   rW   r   rK   rL   )r@   r/   r`   rA   s       r    test_vars_work_with_multiindex'TestMelt.test_vars_work_with_multiindexs   sf    
Ous3x'us3x'Z	 8
 :,J<H
f/r"   z(id_vars, value_vars, col_level, expectedr   r   r   r$   r&   r(   r      r
   r%   r'   r)   )r   r,   r=   re   rf   rk   )re   r-   r=   c                 f    UR                  XUS9n[        U5      n[        R                  " Xd5        g )NrI   )r   r   rK   rL   )r@   rF   rG   rJ   r`   r/   rA   s          r    %test_single_vars_work_with_multiindex.TestMelt.test_single_vars_work_with_multiindex   s.    8 'CX&
f/r"   zid_vars, value_varsrd   rg   c                     Sn[         R                  " [        US9   UR                  XS9  S S S 5        g ! , (       d  f       g = f)NzF(id|value)_vars must be a list of tuples when columns are a MultiIndexmatchrE   )pytestraises
ValueErrorr   )r@   rF   rG   r/   msgs        r    $test_tuple_vars_fail_with_multiindex-TestMelt.test_tuple_vars_fail_with_multiindex   s2     X]]:S1HHWH< 211s	   5
Ac                    UR                  US9nUR                  R                  5       SS/:X  d   eUR                  S/US9nUR                  R                  5       / SQ:X  d   eUR                  SS/US9nUR                  R                  5       / SQ:X  d   eUR                  SS/S	US
9nUR                  R                  5       / SQ:X  d   eUR                  SS/S	S/US
9n[        SUS   R                  5       S-  SUS   R                  5       S-  US	/S-  S/S-  -   SUS	   R                  5       US   R                  5       -   0SSUS/S9n[        R
                  " Xx5        g )Nr3   r1   r=   r   rF   r3   )r   r1   r=   r   )r   r   r1   r=   r   )rF   rG   r3   r   r
   r   rV   r   r   r?   r   rK   rL   )	r@   r!   r3   result5result6result7result8result9	expected9s	            r    test_custom_var_name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
	 	g1r"   c                    UR                  US9nUR                  R                  5       SS/:X  d   eUR                  S/US9nUR                  R                  5       / SQ:X  d   eUR                  SS/US9nUR                  R                  5       / SQ:X  d   eUR                  SS/S	US
9nUR                  R                  5       / SQ:X  d   eUR                  SS/S	S/US
9n[        SUS   R                  5       S-  SUS   R                  5       S-  SS	/S-  S/S-  -   X!S	   R                  5       US   R                  5       -   0SSSU/S9n[        R
                  " Xx5        g )N)r7   r<   r6   r   rF   r7   )r   r<   r6   r   )r   r   r<   r6   r   )rF   rG   r7   r   r
   r   rV   r{   )	r@   r!   r7   result10result11result12result13result14
expected14s	            r    test_custom_value_name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W^^-30@@	 E:z:

 	h3r"   c                 v   UR                  X2S9nUR                  R                  5       SS/:X  d   eUR                  S/X2S9nUR                  R                  5       / SQ:X  d   eUR                  SS/X2S9nUR                  R                  5       / SQ:X  d   eUR                  SS/S	UUS
9nUR                  R                  5       / SQ:X  d   eUR                  SS/S	S/UUS
9n[        SUS   R                  5       S-  SUS   R                  5       S-  US	/S-  S/S-  -   X!S	   R                  5       US   R                  5       -   0SSX2/S9n	[        R
                  " X5        UR                  5       n
SU
R                  l        U
R                  5       nUR                  R                  5       SS/:X  d   eg )NrH   r1   r6   r   rF   r3   r7   )r   r1   r6   r   )r   r   r1   r6   r   rF   rG   r3   r7   r   r
   r   rV   foor=   )r   r   r?   r   rK   rL   copyname)r@   r!   r7   r3   result15result16result17result18result19
expected19df20result20s               r    test_custom_var_and_value_name'TestMelt.test_custom_var_and_value_name   s   77H7D&&(UEN:::77E7X7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W^^-30@@	 E88

 	h3wwy!99;&&(UG,<<<<r"   rJ   r,   c                 f    UR                  US9nUR                  R                  5       SS/:X  d   eg )NrI   r,   r=   r>   )r@   rJ   r/   r   s       r    test_col_levelTestMelt.test_col_level  s2    hhh+{{!!#w'7777r"   c                 h    UR                  5       nUR                  R                  5       / SQ:X  d   eg )N)r,   r-   r=   r>   )r@   r/   r   s      r    test_multiindexTestMelt.test_multiindex  s)    hhj{{!!#'>>>>r"   col2010   z
US/Pacific)r   tz)re   rf   cre   d)r   rk   r   r   r   c                    [         R                  " U5      n[        [        S5      U/ SQUS.5      n[         R                  " [         R                  " / SQ5      U/SS9n[        USS/SS	S
9n[        [        [        S5      5      S-  [         R                  " U/S-  SS9S/S-  S/S-  -   US.5      n/ SQUl        [        R                  " XE5        g )Nr   )rk   r   r   r   r   )klassr   attr1attr2Tignore_indexr   r   	attributer=   r   r
   r   r   r   rk   r
      )r   r   r   r=   )
pdSeriesr   rangeconcatr   r   r   rK   rL   )r@   r   r!   expected_valuerA   r`   s         r    test_pandas_dtypesTestMelt.test_pandas_dtypes  s     iinAhs_sS
 BIIo$>#DSWX%(;7
 a>A%99cUQYT:9q=G9q=0!	
 B
f/r"   c                     [        SS/[        R                  " SS/5      S.5      n[        US/S/5      n[        [        R                  " SS/5      SS/SS/S.5      n[        R
                  " X#5        g )	Nrk   r
   XYr_   r   r   )r   r<   r=   )r   r   Categoricalr   rK   rL   )r@   datarA   r`   s       r    test_preserve_categoryTestMelt.test_preserve_category9  so    1vBNNC:,FGHdSEC5)..#s,3*PQSTvV
 	f/r"   c                    [        [        R                  R                  S5      R	                  S5      [        S5      S9nSn[        R                  " [        US9   UR                  SS/S	S
/5        S S S 5        [        R                  " [        US9   UR                  SS/SS
/5        S S S 5        [        R                  " [        US9   UR                  / SQSS
/5        S S S 5        [        S5      [        S5      /Ul
        [        R                  " [        US9   UR                  S/S/5        S S S 5        [        R                  " [        US9   UR                  S/S/SS9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nx= f! , (       d  f       g = f)Nr
   )r   r   abcdrV   zEThe following id_vars or value_vars are not present in the DataFrame:rp   re   rf   Cr   r   r   )re   rf   not_hereor_therer   )Ere   rg   Fr   rI   )r   r   r   r   r   r   rr   rs   KeyErrorr   r   r@   r!   ru   s      r     test_melt_missing_columns_raises)TestMelt.test_melt_missing_columns_raisesC  sS    II!!!$44V<d6l

 V]]83/GGS#Jc
+ 0 ]]83/GGS#Jc
+ 0 ]]
 GG6c
C	
 6lDL1
]]83/GGZL:,/ 0 ]]83/GGSEC5AG. 0/' 0/ 0/
 
 0/ 0/s<   E1FFF%F61
F 
F
F"%
F36
Gc                     [        S/S/S/S/S.5      n[        USS/SS	/S
9n[        S/S-  S/S-  [        S5      SS/S.5      nUS   R                  [        5      US'   [
        R                  " X#5        g )Nr   barrk   r
   )r   re   rf   r   r   re   rf   r   rE   bd)r   re   r<   r=   r<   )r   r   r   r   objectrK   rL   r@   r!   rA   r`   s       r    test_melt_mixed_int_str_id_vars(TestMelt.test_melt_mixed_int_str_id_varse  s    E7%s!EFb1c(SzB!5'A+4:QRTUPVW
  (
3::6B
f/r"   c                     [        S/S/S.5      n[        USS/S9n[        SS/SS/S.5      n[        R                  " X#5        g )Nr   r   )r   re   r   re   )rG   r<   r=   r   r   rK   rL   r   s       r    "test_melt_mixed_int_str_value_vars+TestMelt.test_melt_mixed_int_str_value_varsp  sJ    E7%12baX.1c(eU^LM
f/r"   c                     [        S/S/S.S/S9n[        USS9n[        SS	/SS/S
.SS/S9n[        R                  " X#5        g )Nr   rk   r   r   firstr   Fr   r   r   r   r   r   s       r    test_ignore_indexTestMelt.test_ignore_indexw  sV    sA3/yAbu-1a&9'7AS
 	f/r"   c                 (   [         R                  R                  SS/SS/S9n[        SS/SS	/S
.US9n[	        USS9n[         R                  R                  SS/S-  SS/S9n[        S/S-  S/S-  -   / SQS.US9n[
        R                  " X55        g )N)r   second)r   thirdbazfoobarr.   r   rk   r
   r   r   r   Fr   r   r   r   r   )r   
MultiIndexfrom_tuplesr   r   rK   rL   r@   r   r!   rA   expected_indexr`   s         r    test_ignore_multiindexTestMelt.test_ignore_multiindex  s    )) "45eX=N * 
 1vq!f5UCbu-22 "459%AR 3 
 1w{2\J 

 	f/r"   c                     [        SS/SSS9n[        SS/SS	/S
.US9n[        USS9n[        SS/S-  SSS9n[        / SQ/ SQS.US9n[        R                  " X55        g )Nr   r   categoryr   )dtyper   r   rk   r
   r   )xyr   Fr   )r   r   r   r   r   r   )r   r   r   rK   rL   r   s         r    test_ignore_index_name_and_type(TestMelt.test_ignore_index_name_and_type  su    uenJUCaV1a&1?bu-u~1%P-E 

 	f/r"   c                     [        / SQ// SQS9nUR                  S/S/S9n[        / SQ/ SQ// S	QS9n[        R                  " X#5        g )
N)idr
   r   )re   rf   rf   rV   re   rf   rE   )r   rf   r
   )r   rf   r   )re   r<   r=   r   r   s       r     test_melt_with_duplicate_columns)TestMelt.test_melt_with_duplicate_columns  sK    ~?#C59^,6P
 	f/r"   r   Int8Int64c                 
   [        [        R                  " SS/SS9[        R                  " SS/US9S.5      nUR                  5       n[        / SQ[        R                  " / S	QUS9S
.5      n[        R
                  " X45        g )Nrk   r
   r   r   r   r   re   rf   )re   re   rf   rf   )rk   r
   r   r   r   )r   r   r   r   rK   rL   )r@   r   r!   rA   r`   s        r    test_melt_ea_dtypeTestMelt.test_melt_ea_dtype  st     YY1vV4YY1vU3
 0<u=
 	f/r"   c                 ,   [        SSSS.SSSS.SS	S
S.S.5      nUR                  R                  S5      Ul        UR                  S/S/S9n[        [	        S5      [
        R                  " S/S-  SS9/ SQS.5      n[        R                  " X#5        g )Nre   rf   r   rj   rk   r   r   r
   r      )r   r   r   zstring[python]r   r   rE   r+   r   )rk   r   r   )r   r<   r=   )	r   r   r   r   r   r   r   rK   rL   r   s       r    test_melt_ea_columnsTestMelt.test_melt_ea_columns  s    -qQ'qQ'
 ZZ&&'78
#C59%[IIseai7GH"
 	f/r"   c                    [        S[        R                  " SSS9[        R                  " SSS9S.S[        R                  " SSS9[        R                  " SSS9S./S	S
/S9nUR                  S/SS/SSS9n[        SSSSS.SSSSS.[        R                  " SSS9[        R                  " SSS9[        R                  " SSS9[        R                  " SSS9S.S.5      n[        R
                  " X#5        g )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   rK   rL   r   s       r    test_melt_preserves_datetime%TestMelt.test_melt_preserves_datetime  s    !"$,,|"M "\l K !"$,,|"M "\l K 6"
 H$j1 	  
  Tdt<##!!	 ||$><P||$><P||$><P||$><P	
" 	f/r"   c                     [        / SQ/ SQS./ SQS9nUR                  SSSS	9n[        / SQS
/S-  / SQS.5      n[        R                  " X#5        g Nrk   r
   r   r   r   r   r   112233r  re   r   rk   r   rf   r   )re   r   rk   r   r   s       r    #test_melt_allows_non_scalar_id_vars,TestMelt.test_melt_allows_non_scalar_id_vars  s\     y1$
   

 9#yIJ
f/r"   c                     [        / SQ/ SQS./ SQS9nUR                  S/SSS	9n[        / SQS
/S-  / SQS.5      n[        R                  " X#5        g r  r   r   s       r    $test_melt_allows_non_string_var_name-TestMelt.test_melt_allows_non_string_var_name  s^     y1$
 E  

 9#yIJ
f/r"   c                     [        / SQ/ SQS./ SQS9n[        R                  " [        SS9   UR	                  S/S	S
/S9  S S S 5        g ! , (       d  f       g = f)Nr  r  r   r  r  z.* must be a scalar.rp   re   rk   r
   rz   r   rr   rs   rt   r   r@   r!   s     r    $test_melt_non_scalar_var_name_raises-TestMelt.test_melt_non_scalar_var_name_raises  sK     y1$
 ]]:-DEGGSEQFG3 FEEs   A


Ac                     [        S/S/S.5      n[        SS// SQS9n[        R                  " UR                  SS	/S
9U5        [        R                  " UR                  S/S
9USS/   5        g )Nrk   r
   rd   )r   rf   )r   re   rk   )r   rf   r
   )r   r   r=   rV   r   r   ry   r=   )r   rK   rL   r   )r@   r!   r`   s      r    %test_melt_multiindex_columns_var_name.TestMelt.test_melt_multiindex_columns_var_name  ss    QCaS9:M*4P
 	bgg/BgCXN
bggyg98WgDV;WXr"   c                     [        S/S/S.5      n[        R                  " [        SS9   UR	                  / SQS9  S S S 5        g ! , (       d  f       g = f)Nrk   r
   r!  z,but the dataframe columns only have 2 levelsrp   )r   r   r   ry   r  r  s     r    .test_melt_multiindex_columns_var_name_too_many7TestMelt.test_melt_multiindex_columns_var_name_too_many%  sH    QCaS9:]]L
 GG9G:
 
 
s   A
Ac                     [        / SQ/ SQ// SQS9nSn[        R                  " [        US9   UR	                  S/S/S	9  S S S 5        g ! , (       d  f       g = f)
Nr  )r   r   r   )r   r   r   rV   z)id_vars cannot contain duplicate columns.rp   r   r   rE   r  r   s      r    (test_melt_duplicate_column_header_raises1TestMelt.test_melt_duplicate_column_header_raises.  sF    	9-G9]]:S1GGSEseG4 211s   A


Ar2   N).__name__
__module____qualname____firstlineno__rB   rM   rS   r[   rr   markparametrizetupler   r   arrayra   rh   rm   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r"  r%  r(  __static_attributes__r2   r"   r    r9   r9   6   s0   @MO2  [[WudBHH&=>0 ?00 [[2 %)	B"ss3!*xGD		 %)	B"ss3!*xGD			
20320 [[*&\:&$	
==264:(=T [[[1e*58 68? [[vq\:NN45	
00*0 /D	0000$00 [[Wvw&780 90"0('0R004	Y;5r"   r9   c                       \ rS rSrS rSrg)TestLreshapei7  c                    / SQ/ SQ/ SQ/ SQ/ SQS[         R                  SSS	/S
[         R                  [         R                  SS// SQS[         R                  SSS/S[         R                  [         R                  SS/S.
n[        U5      n[        SS5       Vs/ s H	  nSUS 3PM     sn[        SS5       Vs/ s H	  nSUS 3PM     snS.n[	        X$5      n/ SQ/ SQ/ SQ/ SQ/ S Q/ S!QS".n[        XeR
                  S#9n[        R                  " XW5        [	        X$S$S%9n/ S&Q/ S'Q/ S(Q/ S)QS*S+S,S-S.S[         R                  SSS	S
[         R                  [         R                  SS/S/SS0S1S2S[         R                  SSSS[         R                  [         R                  SS/S".n[        XeR
                  S#9n[        R                  " XW5        [        SS35       Vs/ s H	  nSUS 3PM     sn[        SS5       Vs/ s H	  nSUS 3PM     snS.nS4n[        R                  " [        US59   [	        X$5        S S S 5        g s  snf s  snf s  snf s  snf ! , (       d  f       g = f)6N)	08jan2009	20dec2008	30dec2008	21dec2008	11jan2009)      C  %  )e   f   g   h   i   )MaleFemalerF  rF  rF  )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wt3rk   r   visitdtr   wt)rb  rc  )r6  r7  r8  r9  r:  r6  r8  r9  r:  r6  r9  r:  )r;  r<  r=  r>  r?  r;  r=  r>  r?  r;  r>  r?  )r@  rA  rB  rC  rD  r@  rB  rC  rD  r@  rC  rD  )rE  rF  rF  rF  rF  rE  rF  rF  rF  rE  rF  rF  )r:  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  )     |@rT       4@     ĩ@     Ұ@rR  rS  rT  rU  rV  rW  rX  )rY  rZ  r   r[  rb  rc  rV   F)dropna)r6  r7  r8  r9  r:  r6  r7  r8  r9  r:  r6  r7  r8  r9  r:  )r;  r<  r=  r>  r?  r;  r<  r=  r>  r?  r;  r<  r=  r>  r?  )r@  rA  rB  rC  rD  r@  rA  rB  rC  rD  r@  rA  rB  rC  rD  )rE  rF  rF  rF  rF  rE  rF  rF  rF  rF  rE  rF  rF  rF  rF  r:  rG  rH  rI  rJ  rd  re  rf  rg  r   z$All column lists must be same lengthrp   )r   nanr   r   r   r   rK   rL   rr   rs   rt   )	r@   r   r!   ispecrA   exp_dataexpru   s	            r    
test_pairsTestLreshape.test_pairs8  sk    6+C %bffk;T$bffbffk;O1BFFFFF;BFFBFFFF;-
2 t_ 27q!=A'!A=',Q{3{!R!u:{3
 "# OuH
R ..9
f*"51"""$ $ mg
P ..9
f* 27q!=A'!A=',Q{3{!R!u:{3
 5]]:S1R 21E >3z >3 21s$   I;II=I-I
I$r2   N)r*  r+  r,  r-  rn  r2  r2   r"   r    r4  r4  7  s    `r"   r4  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rSrg)TestWideToLongi  c                    [         R                  R                  S5      R                  S5      n[	        SSSS.SSS	S.S
SSS.SSSS.[        [        [        S5      U5      5      S.5      nUR                  US'   UR                  5       UR                  5       -   / SQ/ SQ/ SQ/ SQS.n[	        U5      nUR                  SS/5      / SQ   n[        USS/SSS9n[        R                  " XT5        g )Nr
   r   re   rf   r   rj   r   ef      @333333?ffffff?皙	@?皙?)A1970A1980B1970B1980r   r   re   rf   r   r   rs  rt  ru  rv  rw  rx  ry  rz    r  r    r  r  r   rk   r
   r   rk   r
   r   r   r   yearr   r  r   r   r   r   r   rj  jr   r   r   r   r   dictzipr   r   r?   	set_indexr   rK   rL   r@   r   r!   rl  r`   rA   s         r    test_simple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*?
f/r"   c                 j    [        / SQ/ SQ/5      n/ SQUl        SS/n[        XSSS9  USS/:X  d   eg )	N)r   rk   r
   r      )r   r   r      	   )r   inc1inc2edu1edu2incedur   ager  )r   r   r   )r@   r!   stubss      r    
test_stubsTestWideToLong.test_stubs4  s?    9:;
R$%0&&&r"   c                    [         R                  R                  S5      R                  S5      n[	        SSSS.SSS	S.S
SSS.SSSS.[        [        [        S5      U5      5      S.5      nUR                  US'   UR                  5       UR                  5       -   / SQ/ SQ/ SQ/ SQS.n[	        U5      nUR                  SS/5      / SQ   n[        USS/SSSS9n[        R                  " XT5        g )Nr
   r   re   rf   r   rj   r   rs  rt  ru  rv  rw  rx  ry  rz  )zA.1970zA.1980zB.1970zB.1980r   r   r  r  r  r  r  r  r  r   r   .rj  r  sepr  r  s         r    test_separating_character(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
f/r"   c                    [         R                  R                  S5      R                  S5      n[	        SSSS.SSS	S.S
SSS.SSSS.[        [        [        S5      U5      5      S.5      nUR                  US'   UR                  5       UR                  5       -   / SQ/ SQ/ SQ/ SQS.n[	        U5      nUR                  SS/5      / SQ   n[        USS/SSS9n[        R                  " XT5        g )Nr
   r   re   rf   r   rj   r   rs  rt  ru  rv  rw  rx  ry  rz  )zA(quarterly)1970zA(quarterly)1980zB(quarterly)1970zB(quarterly)1980r   r   r  r  r  r  )r   A(quarterly)B(quarterly)r  r   r  )r   r  r  r  r  r  r  r  s         r    test_escapable_characters(TestWideToLong.test_escapable_charactersX  s    II!!!$44Q7(+$<(+$<(+$<(+$<#eAh*+
 884ahhj(::8$
 X&%%tVn51
 b>>"BdfU
f/r"   c                 @   [        SS/SS/SS/SS/S	.5      nUR                  US
'   / SQ/ SQSS[        R                  [        R                  // SQ/ SQS.n[        U5      nUR	                  S
S/5      / SQ   n[        USS/S
SS9n[        R                  " XC5        g )N      ?       @      @      @      @      @X1X2A2010A2011B2010r   r   r  r  r  r  r  r  r  r  )r   rk   r   rk   )  r    r  )r   r   r   r   r  r  r  r   r   r  )r   r   r   ri  r  r   rK   rL   r@   r!   rl  r`   rA   s        r    test_unbalancedTestWideToLong.test_unbalancedr  s    sssD\	
 884)%sBFFBFF+,
 X&%%tVn5oFb3*?
f/r"   c                 Z   [        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQS.5      nUR                  US	'   [        / S
Q/ S
Q/ SQ/ SQ/ SQ/ SQ/ SQS.5      nUR                  S	S/5      / SQ   n[        U/ SQS	SS9n[        R
                  " UR                  SS9UR                  SS95        g )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  rk   r
   r   r   r   r   r     r  r     r  r  )r  r  r   r   BBr   r  r  )r  r  r   r   r  r   r   r  r  rk   axisr   r   r  r   rK   rL   
sort_indexr@   r!   r`   rA   s       r    test_character_overlap%TestWideToLong.test_character_overlap  s    ,,,,!!$$	
 88400??((0

 %%tVn56VWb"2dfE
f//Q/79L9LRS9L9TUr"   c           	         Sn[        SS/SS/SS/SS	/S
.5      nUR                  US'   S/ / / / / / / S.n[        U5      R                  S[        R                  05      nUR                  SS/5      / SQ   nUR                  R                  SS/SS9Ul        [        USS/SSUS9n[        R                  " UR                  SS9UR                  SS95        g )Nznope!r  r  r  r  r  r  r  r  r  r    )r   r  r  r  r   r  r   r   r  )r   r  r  r  r   r   r   rk   levelr   r   r  r  r   r   r   r   r   r  
set_levelsr   rK   rL   r  )r@   r  r!   rl  r`   rA   s         r    test_invalid_separator%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                 Z   [        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQS.5      nUR                  US	'   [        / S
Q/ S
Q/ SQ/ SQ/ SQ/ SQ/ SQS.5      nUR                  S	S/5      / SQ   n[        U/ SQS	SS9n[        R
                  " UR                  SS9UR                  SS95        g )Nr  r  r  r  r  r  r  )r  r  r  r  r  r  AratingArating_oldr   r  r  r  r  r  r  )r  r  r   r   r  r   r  r  )r  r  r   r   r  r  r  rk   r  r  r  s       r    test_num_string_disambiguation-TestWideToLong.test_num_string_disambiguation  s     ,,,,!!'+	
 88437??((0

 %%tVn56
 b"2dfE
f//Q/79L9LRS9L9TUr"   c           	         [        SS/SS/SS/SS/S	.5      nUR                  US
'   S/ / / / / / / S.n[        U5      R                  S[        R                  05      nUR                  S
S/5      nUR                  R                  SS/SS9Ul        [        USS/S
SS9n[        R                  " UR                  SS9UR                  SS95        g )Nr  r  r  r  r  r  r  r  )AoneAtwoBoner   r   r  )r   r  r  r  r   r  r   r   r  r   rk   r  r   r   r  r  r  r  s        r    test_invalid_suffixtype&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                     [        / SQ/ SQ/ SQ/ SQS.5      n[        / SQ/ SQ/ SQ/ S	QS
.5      nUR                  / SQ5      S/   n[        USSS/SS9n[        R                  " X25        g )N)	rk   rk   rk   r
   r
   r
   r   r   r   )	rk   r
   r   rk   r
   r   rk   r
   r   )	ffffff@333333@皙@r
   ?ffffff?r   ffffff@ @)	333333@ffffff@r  rx  r  333333@ffffff
@r  r  )famidbirthht1ht2)r  r  r  r  r   r  r  rx  r  r  r  r  r   r  r  r  r  r  )rk   rk   rk   rk   rk   rk   r
   r
   r
   r
   r
   r
   r   r   r   r   r   r   )rk   rk   r
   r
   r   r   rk   rk   r
   r
   r   r   rk   rk   r
   r
   r   r   )rk   r
   rk   r
   rk   r
   rk   r
   rk   r
   rk   r
   rk   r
   rk   r
   rk   r
   )htr	  r
  r  )r	  r
  r  r  r	  r
  r  r  r   r  r   rK   rL   r  s       r    test_multiple_id_columns'TestWideToLong.test_multiple_id_columns  s|    44BD	
 ( POM/
6 %%&?@$Hb$7G*<F
f/r"   c                     [        / SQ/ SQ/ SQS.5      nSn[        R                  " [        US9   [	        USS/SS	S
9  S S S 5        g ! , (       d  f       g = f)N)rk   r
   r   r   r   )rk   rk   rk   rk   rk   )A_A1B_B1r   z3the id variables need to uniquely identify each rowrp   A_AB_Br   colnamer  r   rr   rs   rt   r   r   s      r    test_non_unique_idvars%TestWideToLong.test_non_unique_idvars,  sL     $oOT
 D]]:S1eU^si@ 211s   A		
Ac                     [        / SQ/ SQ/ SQ/ SQ/ SQS.5      n[        / SQ/ SQ/ S	Q/ S
QS.5      R                  SS/5      n[        USS/SSSS9n[        R                  " X25        g )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&  )rk   rk   rk   r
   r
   r
   )r'  r(  r)  r'  r(  r)  )actoractor_fb_likesnumr.  r.  r1  r/  r0  _r  r  r  s       r    test_cast_j_intTestWideToLong.test_cast_j_int6  s    LP$>$:J
  #S)
* )We$
%+ 	, *+w%S
 	f/r"   c                     [        SS/SS/SS/SS/S	.5      nS
n[        R                  " [        US9   [	        USS/SSS9  S S S 5        g ! , (       d  f       g = f)Nr  r  r  r  r  r  r  r  )r  r  r  r   z,stubname can't be identical to a column namerp   r   r   r  r  r  r   s      r    test_identical_stubnames'TestWideToLong.test_identical_stubnames]  s`    sssD\	
 =]]:S1c3Z3)< 211s   A
Ac           	         [        SS/SS/SS/SS/S	.5      n[        / S
Q/ SQSS[        R                  [        R                  // SQS.5      nUR                  SS/5      n[	        USS/SSSSS9n[
        R                  " X25        g )Nr  r  r  r  r  r  r  r  )treatment_placebotreatment_testresult_placebor   r  )placebor<  testr=  r  r   r  rA   	treatmentr   r  rA   r?  z[a-z]+r2  rj  r  suffixr  r   r   ri  r  r   rK   rL   r  s       r    test_nonnumeric_suffix%TestWideToLong.test_nonnumeric_suffixj  s    &)3Z#&*#&*D\	
 -ARVVRVV41	
 %%sI&67;'3)HRU
 	f/r"   c           	          [        SS/SS/SS/SS/S	S
/S.5      n[        / SQ/ SQ/ SQ/ SQS.5      R                  SS/5      n[        USS/SSSSS9n[        R                  " X25        g )Nr  r  r   r  r  r  r  r  r  r  )r   result_1
result_footreatment_1treatment_foor  )1rJ  r   r   )              "@r  r  r  r>  r   r  rA   r?  z.+r2  r@  r  r  s       r    test_mixed_type_suffix%TestWideToLong.test_mixed_type_suffix  s    D\F"Cj #Sz"%s
 -3.1	
 )S)$
% 	 ;'3)Dc
 	f/r"   c                    [        SS/SS/SS/SS/S	S
/S.5      n[        / SQ/ SQSSSS[        R                  [        R                  [        R                  [        R                  /[        R                  [        R                  [        R                  [        R                  SSSS/S.5      nUR                  SS/5      n[	        USS/SSSSS9n[
        R                  " X25        g )Nr  r  r  r  r  r  r   r  r  r  )ztreatment_1.1ztreatment_2.1z
result_1.2rF  r   )r  r  r  r  r  r  r  r  )rv  rv  r  r  皙?rP  r  r  rK  rL  r>  r   r  rA   r?  z[0-9.]+r2  r@  rB  r  s       r    test_float_suffix TestWideToLong.test_float_suffix  s    "%s"%s"CjFD\
 ECS#rvvrvvrvvrvvN ffbffbffbffc3SQ	
 %%sI&67;'3)ISV
 	f/r"   c           
          SSSSSS.SSS	S
SS.SSSSSS.SSSSSS.SSSSSS.S.n[         R                  " U5      n[        US/SS/SS9n[        USSS/SS9n[        R                  " XC5        g )Nr   rk   r
   r   r   )r   rk   r
   r   r   g?rK  g      ?r  gQ?gGz?gQ?g\(\?g333333?gp=
ף?g{Gz?gp=
ף?gq=
ףp?g(\?rw  )node_idr   PA0PA1PA3PArT  r   time)	stubnamesrj  r  )r   	from_dictr   rK   rL   )r@   	wide_datawide_dfr`   rA   s        r    test_col_substring_of_stubname-TestWideToLong.test_col_substring_of_stubname  s    
 qQ15cdst<$3?$4@$4@
	 %%i0D6i=MQWXg)S9IVT
f/r"   c                     [        [        S5      [        SSS5      S.5      n[        R                  " [
        [        R                  " S5      S9   UR                  SSS	9  S S S 5        g ! , (       d  f       g = f)
Nr*   r      r
   )r   r=   zvalue_name (value) cannot matchrp   r=   r   )	r   r   r   rr   rs   rt   reescaper   r  s     r    test_raise_of_column_name_value.TestWideToLong.test_raise_of_column_name_value  s]     tE{U2r15EFG]]bii(IJ
 GGGG8
 
 
s   A**
A8c                    [        SS/SS/SS/S.5      nUR                  SU05      n[        US	S
/SSSS9n[        / SQSS9n[        / SQ[        R
                  /S-  S.US9nUR                  R                  S   R                  U5      nUS:X  a(  UR                  R                  S   R                  S5      nUR                  R                  USS9Ul        [        R                  " X55        g )NrJ  2d      ,    )r   za-1za-2r   re   rf   r1  -)rZ  rj  r  r  ))rJ  rk   )rg  rk   )rJ  r
   )rg  r
   )r   r1  )r   )rh  ri  rj  rk  r   r   r   r   r   strr  )r   r   r   r   r   ri  r   levelsr  rK   rL   )r@   any_string_dtyper!   rA   r   r`   	new_levels          r    test_missing_stubname$TestWideToLong.test_missing_stubname  s    sCj#sS#JOPYY./0Cj
 4
 &bffX\:
 NN))!,334DE	x' --a077>I!229A2F
f/r"   r2   N)r*  r+  r,  r-  r  r  r  r  r  r  r  r  r  r  r  r3  r6  rC  rM  rQ  r^  rd  rq  r2  r2   r"   r    rq  rq    si    00'04040.V<V<VBV:'0RA%0N=0.0.000 	90r"   rq  c                    [         R                  " U [        R                  S9n[	        SS0SS0SS0SS0SS0S.5      nUR
                  R                  U5      Ul        [        USSSS	S
S9n[	        SS/SS/SS//[        SS/5      [         R                  R                  / SQ[        / SQUS9/SS/S9S9n[        R                  " X45        g )N)na_valuer   rk   r
   )IDR_test1R_test2R_test3DRru  	UNPIVOTEDr2  z.*)rZ  rj  r  r  rA  ry  )rk   rk   rk   )test1test2test3r   r   r   )r   StringDtyper   ri  r   r   r   r   r   r   from_arraysrK   rL   )string_storagestring_dtyper!   rA   r`   s        r     test_wide_to_long_string_columnsr    s    >>.266BL	a&1v1v1vQ	

B ""<0BJ
cT[c$F 
Q!Q!Q sCj!mm''1F % ( 

H &+r"   )rb  numpyr   rr   pandasr   r   r   r   r   r   r   pandas._testing_testingrK   fixturer!   r/   r3   r7   r9   r4  rq  r  r2   r"   r    <module>r     s    	        
 
    ~5 ~5Ba aHG0 G0T,r"   