
    Pi                    n   d dl m Z  d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
Zd dl
mZmZmZmZmZmZmZ d dlmZ d dlmZ  ej        ddg	          d
             Z G d d          Zej                            dddg          d             Zej                            dg ddej        fdddgfg dddej        fddgfg ddddej        fdgfg dddddej        fgfgg d          d             Z d Z!d Z"ej        #                    d          d              Z$ej        #                    d          ej                            d!ddej%        g          d"                         Z&ej        #                    d          ej                            d!ddej%        g          d#                         Z'ej        #                    d          ej                            d!ddej%        g          ej                            d$dd g          d%                                     Z(d& Z)d' Z*ej        #                    d          d(             Z+d) Z,ej        #                    d          d*             Z-ej        #                    d          d+             Z. G d, d-          Z/ej        #                    d          d.             Z0ej                            d/dej        fdej        fdej1        fd0ej1        fg          ej                            d1ddg          d2                         Z2dS )3    )datetimeN)lib)Pandas4Warning)	DataFrameIndex
MultiIndexPeriodSeries	Timedelta
date_range)reshapeTF)paramsc                     | j         S N)param)requests    y/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/frame/test_stack_unstack.pyfuture_stackr      s
    =    c                      e Zd Zej                            d          d             Zej                            d          d             Zd Zej                            d          d             Z	d Z
d Zd Zd	 Zd
 Zd Zej                            ddg dg dg dg dg ej        g dddg           ej        g dddg          fdg dg dg eddgd           ej        g dg d          fg          d             Zd Zej                            d          d             Zej                            d          d             Zej                            d          d              Zd! Zej                            d          d"             Zd# Zd$ Zej                            d% ej        d&           ej        d&          f ej        d&d'(           ej        d&d)d'(          ff          d*             Z ej                            d          d+             Z!d, Z"ej                            d-d.g d/ej#        d0d1gej#        d&d2gfd2g d3ej#        d&d2gej#        d0d1gff          d4             Z$ej                            d5d6dg e%d          g          d7             Z&d8 Z'd9 Z(d: Z)ej                            d;d<d=g          ej                            d> e* e+d1                              d?                         Z,ej                            d; e-j.        g d@                    ej                            d> e* e+d                              ej                            dAdBdCg          dD                                     Z/dE Z0dF Z1dG Z2dH Z3dI Z4ej                            d          ej                            dJg dKg dLg dMg dNg dOg dPd.d2gd.d1gd.dgd.gd1gdgg dQg dRg dSg dTg dUg dVd2d.gd1d.gdd.gg          ej                            dWdXd.d2d.d2gd2d.gf          dY                                     Z5ej                            d          dZ             Z6ej                            d          ej                            d[d\d]g          d^                         Z7ej                            d          ej                            d[d\d]g          ej                            d_ e*d`          g daf e*db          g dcfg          dd                                     Z8ej                            d          de             Z9ej                            d          ej                            dfg dgg dhg dLg          di                         Z:ej                            d          ej                            djd2d1gdkdlgdmdndnfd2d1gdodpgdmdqdrfg          ds                         Z;ej                            dWd.d2g          dt             Z<ej                            dWd.dug          dv             Z=dS )wTestDataFrameReshape9ignore:The previous implementation of stack is deprecatedc                    |                                 }t          j        t          j        |j                                                |j                  |d d <   |                    |          }t          ||d          }|                                }|                                }t          j
        ||           t          j
        |d         |           |                    d          }|                    d          }	t          j
        |j        |           t          j
        |	d         j        |           d S )Nr   )foobarr   r   )copynparangeprodshaper   stackr   unstacktmassert_frame_equalT)
selffloat_framer   dfstacked
stacked_df	unstackedunstacked_dfunstacked_colsunstacked_cols_dfs
             r   test_stack_unstackz'TestDataFrameReshape.test_stack_unstack   s    	"'"(++,,44RX>>111(((55ww??@@
OO%%	!))++
i,,,
l512666 ++&..q11
n.333
/68"=====r   c           	         t          d          g dddgg}t          d|d         |d                   }|                    |          }t          dt	          j        |d d                             }t          j        ||           t          d|d         t	          j        |dd                              }|                    d|          }t          dt	          j        |d         |d         g          |d                   }t          j        ||           |d	d
g                             d|          }|d	d
g         }t          j        ||           d S )N   )r2   ab      r   indexcolumnsr   r8   r3   r4   )	ranger   r"   r
   r   from_productr$   assert_series_equalr%   )r'   r   levelsr)   resultexpecteds         r   test_stack_mixed_levelz+TestDataFrameReshape.test_stack_mixed_level4   sb   
 ((MMMAq62 qq	6!9===|44!:#:6"1":#F#FGGG
vx000 qq	:3J6RSRTRT:3V3VWWW!,77Z,fQi-CDDfUVi
 
 
 	fh/// S#J%%al%CCS#J'
fh/////r   c                 >   t          ddt          j        gddt          j        gd          }|dg         }|d         |d<   t          |j        j                  dk    sJ |                                }|                                }t          j        ||           d S )Nr5   r6         @   xyrF   rG   )	r   r   nanlen_mgrblocksr#   r$   r=   )r'   r)   df2resr@   s        r   test_unstack_not_consolidatedz2TestDataFrameReshape.test_unstack_not_consolidatedN   s    aBF^3262BCCDD#ic7C38?##q((((kkmm::<<
sH-----r   c                    t          g dt          j                  }t          j        g d          |_        |                    d          }t          g dg ddg d	t          j        
          }t          j	        ||           d}t          j
        t          |          5  |                    d          }d d d            n# 1 swxY w Y   t          g dg ddg d	t          
          }t          j	        ||           t          g dg dg dg dd                              g d	          }|                    ddgd          }d}||         }t          g d|j        |          }t          j        ||           |                    ddg|          }	|	j                            |j        j                  |	_        |	                    t          j                  }	|	j        |j                 }t          j	        ||           |d         }
|
                    ddgd          }|d         }t          j	        ||           d S )N)r5   r6   rD      dtype)rF   r3   )rF   r4   )rG   r4   )zr3   
fill_value)r5   rU   rP   )r6   rD   rU   r3   r4   rF   rG   rT   r8   rR   JUsing a fill_value that cannot be held in the existing dtype is deprecatedmatch      ?)r5   r^   rP   )r6   rD   r^   r3   r3   r4   )jkr`   r   r5   r6   )rF   rG   rT   wrF   rG   r   )rc   r4   r`   )r   r   r6   )r8   namer   rc   )r
   r   int16r   from_tuplesr8   r#   r   r$   r%   assert_produces_warningr   float	set_indexr=   r"   reorder_levelsnamesastypeint64loc)r'   r   datar?   r@   msgr)   r,   keyr*   ss              r   test_unstack_fillz&TestDataFrameReshape.test_unstack_fillY   s    lll"(333+<<<
 

 ,,**:::..oooRX
 
 
 	fh/// Y 	 'cBBB 	2 	2\\S\11F	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 ++KKK00u
 
 
 	fh/// !//iiiiiiXX
 

)OOO
$
$ 	 JJSzaJ88	S>			sCCC
vx000//3*</HH44RX^DD..**RX&
fb))) sGC:!44S>
fh/////s   &C		CCc                    ddgddgddgddgg}t          |t          d	          t          j        
          }t	          j        g d          |_        |                    d          }g dg dg dg}t          |t          d          t          j                  }t	          j        g d          |_        t          j
        ||           |d                             t          j                  |d<   |d                             t          j                  |d<   |                    d          }|d                             t          j                  |d<   |d                             t          j                  |d<   t          j
        ||           d}t          j        t          |          5  |                    d          }d d d            n# 1 swxY w Y   g dg dg dg}t          |t          d          t                     }t	          j        g d          |_        t          j
        ||           d S )Nr5   r6   r2   rD   rP            AB)r9   rR   rS   rU   rV   )r5   r2   r6   rD   )rU   rP   rU   ru   )rv   rU   rw   rU   xyzrZ   )Ar3   )r{   r4   )Br3   r|   r4   r{   r|   r[   r\   r^   )r^   rP   r^   ru   )rv   r^   rw   r^   )r   listr   int32r   rf   r8   r#   r9   r$   r%   rl   re   float64rg   r   rh   )r'   rowsr)   r?   r@   rp   s         r   test_unstack_fill_framez,TestDataFrameReshape.test_unstack_fill_frame   sk   AAAA/tT$ZZrx@@@)<<<
 
 r**nnnnnn=TeBHEEE%1<<<
 
 	fh/// S'..**3S'..,,3r** ,,RX66 ,,RZ88
fh/// Y 	 'cBBB 	0 	0ZZ3Z//F	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 ...0@0@0@ATeEBBB%1<<<
 
 	fh/////s   5GGGc                 J   t          dd          j        }t          |          }t          j        g d          |_        |                                }t          |d         t          j	        |d         g|d         |d         t          j	        gd	g d
          }t          j        ||           |                    |d                   }t          |d         |d         |d         g|d         |d         |d         gd	g d
          }t          j        ||           d S )N
2012-01-01rD   periodsrS   r   r2   r5   r6   rX   rY   r:   rV   )r   valuesr
   r   rf   r8   r#   r   pdNaTr$   r%   )r'   dvro   r?   r@   s        r    test_unstack_fill_frame_datetimez5TestDataFrameReshape.test_unstack_fill_frame_datetime   s)   a0007bzz+<<<
 

 a5"&"Q%(1r!ubf/EFF!//
 
 
 	fh///A//a5"Q%A'r!ubeRU.CDD!//
 
 
 	fh/////r   c                 P   d t          d          D             }t          |          }t          j        g d          |_        |                                }t          |d         t          j        |d         g|d         |d         t          j        gdg d	
          }t          j
        ||           |                    |d                   }t          |d         |d         |d         g|d         |d         |d         gdg d	
          }t          j
        ||           d S )Nc                 .    g | ]}t          |           S ))days)r   ).0is     r   
<listcomp>zJTestDataFrameReshape.test_unstack_fill_frame_timedelta.<locals>.<listcomp>   s#    222AiQ222r   rD   rS   r   r2   r5   r6   rX   rY   r:   rV   )r;   r
   r   rf   r8   r#   r   r   r   r$   r%   )r'   tdro   r?   r@   s        r   !test_unstack_fill_frame_timedeltaz6TestDataFrameReshape.test_unstack_fill_frame_timedelta   s-   22q222bzz+<<<
 

 a5"&"Q%(1r!ubf/EFF!//
 
 
 	fh///A//a5"Q%A'r!ubeRU.CDD!//
 
 
 	fh/////r   c                 j   t          d          t          d          t          d          t          d          g}t          |          }t          j        g d          |_        |                                }t          |d         d |d         g|d         |d	         d gd
g d          }t          j        ||           |                    |d                   }t          |d         |d         |d         g|d         |d	         |d         gd
g d          }t          j        ||           d S )Nz2012-01z2012-02z2012-03z2012-04rS   r   r2   r5   r6   rX   rY   r:   rV   )	r	   r
   r   rf   r8   r#   r   r$   r%   )r'   r   ro   r?   r@   s        r   test_unstack_fill_frame_periodz3TestDataFrameReshape.test_unstack_fill_frame_period   sO    9999	
 g+<<<
 

 1:tWQZ0
GAJPT7UVV!//
 
 
 	fh///44aj'!*gaj9aj'!*gaj9  "//
 
 
 	fh/////r   c           	      h   t          g dd          }t          j        g d          |_        |                                }t          t          j        g dt          d                    t          j        g dt          d                    d	t          d
                    }t          j
        ||           d}t          j        t          |          5  |                    d           d d d            n# 1 swxY w Y   |                    d          }t          t          j        t          d          t          d                    t          j        t          d          t          d                    d	t          d
                    }t          j
        ||           d S )Nr3   r4   cr3   categoryrQ   rS   )r3   Nr3   abc
categories)r4   r   NrX   ry   r:   z9Cannot setitem on a Categorical with a new category \(d\)r\   drV   r   acabcc)r
   r   rf   r8   r#   r   r   Categoricalr~   r$   r%   pytestraises	TypeError)r'   ro   r?   r@   rp   s        r   #test_unstack_fill_frame_categoricalz8TestDataFrameReshape.test_unstack_fill_frame_categorical   s   ****===+<<<
 


 ^$4$4$4eMMM^$4$4$4eMMM  u++
 
 
 	fh/// K]9C000 	) 	)LLCL(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) --^DKKDKKHHH^DKKDKKHHH  u++
 
 
 	fh/////s   C??DDc                 V   t          j        g dg dgddg          }t          dgdz  dgdz  d	|
          }|                    d          }t          g dg dg dgt          j        g dd dg          t          g dd                    }t          j        ||           d S )Nr3   r4   r   r5   r6   r2   rz   r}   rk   r5   	   r6   r   er:   )r5   r5   r5   r6   r6   r6   )r   r3   r   r4   )r   r   r   r3   r   r4   )r   r   rd   r9   r8   )r   r<   r   r#   rf   r   r$   r%   r'   idxr)   r?   r@   s        r   $test_unstack_tuplename_in_multiindexz9TestDataFrameReshape.test_unstack_tuplename_in_multiindex"  s    %__iii(Z0H
 
 
 aS1WA37333???J''!3!3!35G5G5GH*   Z(
 
 
 			
333
 
 
 	fh/////r   z>unstack_idx, expected_values, expected_index, expected_columnsrz   )r5   r5   r6   r6   ))r5   r2   )r5   rD   r6   r2   )r6   rD   r|   Cr   )r   r   r   r   N)rz   r|   )r5   r5   r5   r5   r6   r6   r6   r6   r2   rD   r   ))r   r3   r5   )r   r3   r6   )r   r4   r5   )r   r4   r6   )r   r3   r5   )r   r3   r6   )r   r4   r5   )r   r4   r6   )Nrz   r|   c                     t          j        ddgddgddggg d          }t          dgd	z  dgd	z  d
|          }|                    |          }t          |||          }t	          j        ||           d S )Nr3   r4   r5   r6   r2   rD   )rz   r|   r   r   rw   r   r:   r   )r   r<   r   r#   r$   r%   )	r'   unstack_idxexpected_valuesexpected_indexexpected_columnsr   r)   r?   r@   s	            r   *test_unstack_mixed_type_name_in_multiindexz?TestDataFrameReshape.test_unstack_mixed_type_name_in_multiindex;  s    L %3Z!Q!Q(0F0F0F
 
 
 aS1WA37333???K((%5^
 
 
 	fh/////r   c                    t          g dg dt          g d                              d          t          j                            d                              d          ddt          j        d          t          g d	                              d
          t          g d                              d          dt          g d                              d          d          }d }|                    ddg          } ||d           |                    ddg          } ||d           |                    ddg          } ||d           |                    g d          } ||d           |                    ddg          } ||d           |                    ddg          }|d         } ||d           d S )N)ILMINCr   r   r6   r2   r5   r   20010102)      ?      I@g      Y@float32)rC         @      @r   F)r5      i2 int8)stater8   some_categoriesr{   r|   r   DEFGHc                     |                      |g          }|                      |          }t          j        ||           d S r   r#   r$   r%   )r)   column_name
unstacked1
unstacked2s       r   unstack_and_comparezNTestDataFrameReshape.test_unstack_preserve_dtypes.<locals>.unstack_and_compare~  s?    [M22JK00J!*j99999r   r   r8   r   r   r   )r   r|   r   r|   r   r{   )	r   r
   rl   r   randomdefault_rngr   	Timestampri   )r'   r)   r   df1rr   s        r   test_unstack_preserve_dtypesz1TestDataFrameReshape.test_unstack_preserve_dtypesl  s   +++(#)///#:#:#A#A*#M#MY**1--44Q77\*--...//66yAAOOO,,33I>>,,,--44V<< 
 
 	: 	: 	:
 llGW-..C)))llG%6788C!2333llC:&&C%%%ll...//C%%%llC:&&C%%%llGW-..HAw'''''r   c           	         t          j        t          t          j        t          d          d                              }t          t          j        	                    d          
                    d          |          }t          j        |                    ddg|          |                    d|                              d|                     t          j        |                    dd	g|          |                    d|                              d|                     |                                }|j                            t          d          d
          }|J t          j        |                    ddg|          |                    d|                              d|                     d S )Nr2   repeatr6   )      r9   r5   levelr   rU   T)inplace)r   rf   r~   	itertoolsproductr;   r   r   r   r   standard_normalr$   r%   r"   r   r9   	set_names)r'   r   r9   r)   df_namedreturn_values         r   test_stack_intsz$TestDataFrameReshape.test_stack_ints  s    (i.?aQR.S.S.S)T)TUUI!!!$$44X>>
 
 
 	HHAq6H==HH1<H88>>l ?  	
 	
 	
 	HHB8,H??HH1<H88>>l ?  	
 	
 	
 7799'11%((D1II###
NN!QlNCCNNN>>DDl E  	
 	
 	
 	
 	
r   c                 X   t          j        g dg d          }t          t          j                            d                              d          |          }|                    ddg|	          }|                    d
dg|	          }|                                }g d|j	        _
        t          j        |                    ddg|	          |d           t          j        |                    d
dg|	          |d           d}t          j        t          |          5  |                    ddg|	           d d d            n# 1 swxY w Y   |                                }g d|j	        _
        t          j        |                    ddg|	          |d           d S )N)r{   catlong)r|   r   r   )r{   dogshort)r|   r   r   expanimalhair_lengthr   r6   rD   rD   r   r   r   r   r   )r   r   r5   r5   Fcheck_nameszSlevel should contain all level names or all level numbers, not a mixture of the twor\   r   )r   r   r   )r   rf   r   r   r   r   r   r"   r   r9   rk   r$   r%   r   r   
ValueError)	r'   r   r9   r)   animal_hair_stackedexp_hair_stackedrL   rp   df3s	            r   test_stack_mixed_levelsz,TestDataFrameReshape.test_stack_mixed_levels  sH    (   322
 
 
 I!!!$$44V<<g
 
 
 !hh]+, ' 
 
 88-(| $ 
 
 ggii000
IIXqMIEE	
 	
 	
 	

 	IIUAJ\IBB	
 	
 	
 	
# 	 ]:S111 	F 	FIIXqMIEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F
 ggii000
IIXqMIEE	
 	
 	
 	
 	
 	
s   )EEEc                    t          j        g dg d          }t          t          j                            d                              d          |          }|                    ddg|	          }|                    dd
g|	          }|                    dd
g|	          }|                                }g d|j	        _
        t          j        |                    ddg|	          |d           t          j        |                    ddg|	          |d           t          j        |                    ddg|	          |d           |                                }g d|j	        _
        t          j        |                    ddg|	          |d           t          j        |                    ddg|	          |d           t          j        |                    ddg|	          |d           d S )Nr   r   r   r6   r   r   r   r   r   r   rb   r5   Fr   r   )r6   r   r5   )r   rf   r   r   r   r   r   r"   r   r9   rk   r$   r%   )	r'   r   r9   r)   exp_animal_stackedr   r   rL   r   s	            r   test_stack_int_level_namesz/TestDataFrameReshape.test_stack_int_level_names  ss    (   322
 
 
 I!!!$$44V<<g
 
 
  XX(#, & 
 
 !hh]+, ' 
 
 88-(| $ 
 
 ggii%II
IIQFI>>	
 	
 	
 	

 	IIQFI>>	
 	
 	
 	

 	IIQFI>>	
 	
 	
 	
 ggii%II
IIQFI>>	
 	
 	
 	

 	IIQFI>>	
 	
 	
 	

 	IIQFI>>	
 	
 	
 	
 	
 	
r   c           	      p   t          ddgt          j        ddgddgg          dg          }|                                }t          t	          j        dt          j        gt          j        dggt                    ddgt          j        ddgddgg                    }t          j	        ||           d S )	NFr3   r4   r   lcolr7   rQ   )
r   r   from_arraysr#   r   arrayrH   objectr$   r%   )r'   r)   rsxps       r   test_unstack_boolz&TestDataFrameReshape.test_unstack_bool2  s    EN(3*sCj)ABBG
 
 

 ZZ\\Hubfo7vFFF**UENS#J+GHH
 
 

 	b"%%%%%r   c           	          t          ddgddgddggg dg dg d	gg d
          }t          d|          }|                    ddg                              d|          }t          ddgddggg dg dgddg          }t	          t          j        dt
          j        gt
          j        dgdt
          j        gt
          j        dggt
          j                  |t          ddgd                    }t          j        ||           d S )Nr   r   onetwor3   r4   r   r   r5   r5   r   r5   r   r5   )r5   r   r5   r   )firstsecondthirdr>   codesrk   r   r:   r5   r6   r   r  r  rQ   r  r   r7   )r   r
   r#   r"   r   r   r  rH   r   r   r$   r%   )r'   r   mirr   r?   expected_mir@   s          r   test_unstack_level_bindingz/TestDataFrameReshape.test_unstack_level_binding@  sK   
 ENUENS#J?<<|||<...
 
 

 1BAq6""(((FF ENUEN3<<.H%
 
 
 HRVrvqkArv;DBJ   3*7333
 
 
 	fh/////r   c                    |                                 }t          |t                    sJ |                                 j        }t	          j        ||           t          ddt          j        gddt          j        gd          }t          g d          |_
        |                                 }t          ddgg dgg d	g d
g          }t          ddt          j        ddt          j        g|          }t	          j        ||           |                                }t          d          D ]}|                                 }t	          j        ||           d S )Nr5   r6   rC   rD   rE   r   rF   rG   )r   r   r   r5   r5   r5   )r   r5   r6   r   r5   r6   r>   r  r2   r:   )r#   
isinstancer
   r&   r$   r%   r   r   rH   r   r8   r   r=   r   r;   )	r'   r(   ro   undor?   midxr@   old_data_s	            r   test_unstack_to_seriesz+TestDataFrameReshape.test_unstack_to_series]  sQ   ""$$$'''''||~~
dK000 1bf~S!RV4DEEFF???++
#J0%%%'9'9'9:
 
 
 1aArv6dCCC
vx000 99;;q 	" 	"A<<>>DD
h-----r   c                    g dg dg dg dg}t          |t          d                    }|j        }t          t	          j        d          gdz  t          d          	          }t          j        ||           |                    d
dg          }|	                    d          }|j        }t          t	          j        d          gdz  t          j        g dg dgd          	          }t          j        ||           |                    d
dg          }d|d<   |	                    d          }|j        }t          t	          j        d          gdz  t	          j        d          gdz  z   t          j        g dg dgd          	          }t          j        ||           d|d<   |	                    d          }|j        }|rt          j        t          j                  nt	          j        d          }t          t	          j        d          gdz  |gdz  z   t          j        g dg dgd          	          }t          j        ||           d S )N)r5   r5   r2   rD   r5   r6   r2   rD   )r6   r5   r2   rD   )r6   r6   r2   rD   ABCDr   rm   rD   r:   r{   r|   )r   r   r   r   )r5   r6   r5   r6   )Nr|   r   rC   r   r   r6   r   r   )na_valuer  )r   r~   dtypesr
   r   rR   r$   r=   ri   r#   r   r  r   StringDtyperH   )	r'   using_infer_stringr   r)   r?   r@   rL   r   rR   s	            r   test_unstack_dtypesz(TestDataFrameReshape.test_unstack_dtypesx  s   lllLLL,,,GtT&\\22228G,,-1fFFF
vx000 llC:&&kk#Xg!#(%%%|||4K  
 
 
 	vx000 llC:&&Ckk#Xi  !A%'):):(;a(??(%%%|||4K  
 
 
 	vx000Ckk# "$BNBF++++(## 	
 Xi  !A%!3(%%%|||4K  
 
 
 	vx00000r   zc, drP   f8rQ   
   c           	         t          dgdz  ||t          dd          d          }|j        d d                             d          }|                    d	d
g          }|d                             d          |d<   |j        d d                             d          }|                    d	d
g                              d          }|d                             d          |d<   |j        dk    sJ t          j	        ||           d S )Nr3   rP   r   r   )r{   r   r   r|   r2   T)deepr{   r|   r   rm   r   )r   r3   )r2   r6   )
r   r   ilocr   ri   rl   r#   r!   r$   r%   )r'   r   r   r)   rightlefts         r   test_unstack_dtypes_mixed_datez3TestDataFrameReshape.test_unstack_dtypes_mixed_date  s    UQYa888	 
 
   d ++\\3*%%S'..))3wrr{""1%%c
++33A66!*-44W==jzV####
dE*****r   c                    t          j        ddgddg          }t          ddg|          }d}t          j        t
          |	          5  |                    d           d d d            n# 1 swxY w Y   t          j        t
          |	          5  |j                            d|
           d d d            d S # 1 swxY w Y   d S )NrX   )r   r   c1r   r5   r6   r:   z5The name c1 occurs multiple times, use a level numberr\   r   )	r   rf   r   r   r   r   r#   r&   r"   )r'   r   r   r)   rp   s        r   #test_unstack_non_unique_index_namesz8TestDataFrameReshape.test_unstack_non_unique_index_names  sL    $j*%=dD\RRR1vS)))E]:S111 	 	JJt	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]:S111 	8 	8DJJt,J777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s$   A--A14A1B==CCc                    t          j        dgg dg          d d         }t          ddggdz  |          }|                                }t          j        t	          d          g d	g          }t          g d
gdg|          }t          j        ||           |j        j        d         |j        d         k    	                                sJ t	          d          t	          d          g}g dg dg}t          ||          }t          j        d                              dd          }t          t          j        ||dz   g          |          }|                                }t          t          j        |dz  |dz  dz   gd          |          }t          j        ||           |j        j        d         |j        d         k    	                                sJ d S )Nr3   )r{   r|   r   r   rU   r5   r   r2   r:   r6   r{   r|   r   )r5   r5   r5   r   r   r   r7   rD   r  r   r6   r   r6   axisr   )r   r<   r   r#   r;   r$   r%   r9   r>   allr   r   r   concatenate)	r'   r   r)   r?   exp_colr@   r>   r  blocks	            r   test_unstack_unused_levelsz/TestDataFrameReshape.test_unstack_unused_levels  s   %u.B.B.B&CDDSbSIAx!|3///)588___*EFF0001#PPP
fh///%a(CJqM9>>@@@@@ ((E!HH%|||,''	!$$Q**r~ueai&899EEENEAIuqy1}5A>>>
 
 
 	fh///%a(CJqM9>>@@@@@@@r   z"level, idces, col_level, idx_levelr   )      ru   r   r6   rP   rw      r3   r6   r5   )rw   r>  r5   rD         r<  r=  c                    g dg dg}g dg dg}t          ||          }t          j        d          }t          |                    dd          |          }	|	                    |	          }
t          j        d
          t          j        z  }|||<   t          j        t          d          |g          }t          |                    dd          ||          }t          j        |
|           d S )N)r3   r6   r   )r5   r2   rP   rv   )r   rU   r5   r5   )r   r6   rU   r6   rw   rD   r6   r:   r      r2   ru   r7   )r   r   r   r   r   r#   zerosrH   r<   r;   r$   r%   )r'   r   idces	col_level	idx_levelr>   r  r   ro   r)   r?   exp_datacolsr@   s                 r   )test_unstack_unused_levels_mixed_with_nanz>TestDataFrameReshape.test_unstack_unused_levels_mixed_with_nan  s      --..''y||t||Aq))555%((8B<<"&(&a)'<==X--a339dSSS
fh/////r   rI  r{   c                    t          g dg dgg d          }|                    g dd          }|j        t          d           t          d           df|f         }|                                }|j        dg         |         }t          j        |j        dggd d	g
          |_        |j	        
                    d	          |_	        t          j        ||           d S )N)i  r3   I)i  r4   IIr3  r   F)droprL  r   r   r   )r   ri   rn   slicer#   r+  r   r<   r9   r8   	droplevelr$   r%   )r'   rI  r)   ind	selectionr?   r@   s          r   test_unstack_unused_levelz.TestDataFrameReshape.test_unstack_unused_level  s     (((*;*;*;<oooVVVll???l77GU4[[%++s;TAB	""$$8QC=&%2u%dC[
 
 
 "11#66
fh/////r   c           	      `   t          dggt          j        dggdg          t          j        g dgg d                    }|                    g d          }t          dggt          j        g dgg d	          t	          dgd
                    }t          j        ||           d S )Nr5   r   r0  r   )r   r   r5   r   r   r   r5   )i1i2i3i4i5i6i7r   )rV  rW  rX  rY  rZ  r[  )r0  rV  rW  rX  rY  rZ  r[  rU  r   )r   r   rf   r#   r   r$   r%   r'   r)   r?   r@   s       r   test_unstack_long_indexz,TestDataFrameReshape.test_unstack_long_index  s     SE*QC5???(&&&'@@@  
 
 
 @@@AASE*&&&'@@@   $'''
 
 
 	fh/////r   c           	         t          ddgddggt          j        ddgddggddg          t          j        g dg d	gg d
                    }|                    ddg          j        j        dd          ddgk    sJ d S )N        r|   r   r   r0  c2r   )r(     r   )r(  ra  (   rU  rV  rW  r   rV  rU  r   )r   r   rf   r#   r9   rk   )r'   r)   s     r   test_unstack_multi_level_colsz2TestDataFrameReshape.test_unstack_multi_level_cols*  s    3Z#s$*sc3Z(t   (|||,4F4F4F  
 
 
 zz4,''/5bcc:tTlJJJJJJr   c                 b   t          ddgddgddgddggt          j        g d	g d
g          t          j        g dg dg dg dgg d                    }|                    ddg          }|                    dg                              dg          }t	          j        ||           d S )Nr5   r6   r2   rD   rU   r   r   )r   r   f)m1P3   )ri  A5o   )m2rj  rk  )rn  rl  rm  rc  r   r   rW  rV  )r   r   rf   r#   r$   r%   r\  s       r   &test_unstack_multi_level_rows_and_colsz;TestDataFrameReshape.test_unstack_multi_level_rows_and_cols7  s    VaVb"XBx0*OOO___+MNN(%%%%%%%%%%%%	 )((  
 
 
 T4L))::tf%%--tf55
fh/////r   r   jimjoe)rr  rq  levc                    d }t          ddt          j        dgg dg dd          }|                    dd	g                                          d
         }|                    d	dg                                          d
         j        }t          j        ||           |                    t          |                    }|                    |          }|	                                j
                                        t          |          k    sJ d }	|d
         	                                j
                                        \  }
}t          |
|          D ]\  }}t          |d
         j        ||f                             d                    } |	|d
         j        |                    |	|d
         j        |                   z   }t          t)          ||                    }||k    sJ d S )Nc                     | | k    rdn| }|dS N 1 valval_strs     r   castz:TestDataFrameReshape.test_unstack_nan_index1.<locals>.castN      3JJbbCG>>!r   r3   r4   r   )rc   rF   rG   rT   )za.wzb.xz .yzd.z)rq  rr  jolierq  rr  r  rB  c                 P    t          | t                    rt          |           n| gS r   r  tupler~   r3   s    r   <lambda>z>TestDataFrameReshape.test_unstack_nan_index1.<locals>.<lambda>a  !    z!U';';DDGGG! r   .)r   r   rH   ri   r#   r&   r$   r%   r~   notnar   sumrI   nonzerozipsortedr+  splitr8   r9   map)r'   r   rs  r}  r)   r-  r,  r  udfmk_listr   rI  r   r`   s                 r   test_unstack_nan_index1z,TestDataFrameReshape.test_unstack_nan_index1J  s   	" 	" 	" S"&#.+++555 
 
 ||UEN++3355g>eU^,,4466w?A
dE***\\$s))$$jjsj##yy{{!%%''3r772222DD\''))088::
ddOO 	! 	!DAq#g,+AqD177<<==DGCL.q122WWS\=QRS=T5U5UUE3tU++,,E5=====		! 	!r   1st2nd3rdr  4th5thc                 Z   d t          dgdz  t          j        gdz  z   dgdz  z   dgdz  z   dgdz  z   d	gdz  z   d
gdz  dgdz  z   t          j        gdz  z   dgdz  z   t          j        gdz  z   dgdz  z   t          j        gdz  z   g dd          }|                    fdd          |                    fdd          c|d<   |d<   |                    t          |                    }|                    |          }|                                j        	                                dt          |          z  k    sJ d }||                                         j                                        \  }}	t          ||	          D ]\  }
}t          ||         j        |
|f                             d                    } |||         j        |
                    |||         j        |                   z   }t          t%          |                    }||k    sJ d S )Nc                     | | k    rdn| }|dS rv  ry  rz  s     r   r}  zATestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.castm  r~  r   r   r2   rP   r3   r6   r   r   r4   rG   rc   rT   rD   rF   )C   '   5   H   9   P      rC  r>  r   ;   2   >   r  L   4      r  <   3   r  c                 J    d                     t          |                     S )Nr  )joinr  rr}  s    r   r  zETestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.<lambda>  s    sxxD!55 r   r5   r5  c           	      f    d                     t          | j        d d d                             S )Nr  rU   )r  r  r+  r  s    r   r  zETestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.<lambda>  s)    sxxD!&2,(?(?@@ r   r  r  rB  c                 P    t          | t                    rt          |           n| gS r   r  r  s    r   r  zETestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.<lambda>  r  r   r  )r   r   rH   applyri   r~   r#   r  r   r  rI   r  r  r  r+  r  r8   r9   r  )r'   r   rs  r  r)   r  r  r  r   rI  r   r`   r-  r,  r}  s                 @r   test_unstack_nan_index_repeatsz3TestDataFrameReshape.test_unstack_nan_index_repeatsi  s   	" 	" 	" uqy6(Q,%!) %!) %!)	
 %!) uqy%!)6(Q, %!) 6(Q,	
 %!) 6(Q,  $ $&
 &
R HH5555AH>>HH@@@@qHII 	5	2e9
 \\$s))$$jjsj##yy{{!%%''1s2ww;6666DDX^^%%,4466
ddOO 	! 	!DAq#c(-1-33C8899DGCHN1-..S9I!9L1M1MME3tU++,,E5=====		! 	!r   c           
         t          t          d          t          d          t          d          d          }|                    ddi          }t          j        |j        d<   |                    d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g}t          t          t          t          |                     }t          t          j        dd
dddddgd          }t          dgddggddgdd
ggd dg          }t          |||          }t          j        ||           t          t          d          t          t          d                    dz  t          d          d          }|                    ddi          }t          j        |j        d<   |                    ddg                              d          }dt          j        gddgd
dgt          j        dgd	dgg}t          dgddggddgdd
ggd dg          }t          t          j        dd
dd	gd          }t          |||          }t          j        ||           t          t          d          t          t          d                    dz  t          d          d          }|                    ddi          }t          j        |j        d<   |                    ddg                              d          }d	t          j        gddgd
dgddgt          j        dgg}t          dgddggddgdd
ggd dg          }t          t          j        dd
dd	gd          }t          |||          }t          j        ||           d S )Naaaabbbbrw   r3  r|   rh   r2   r5   r{   r   r2   r5   r6   rD   rP   ru   rv   r   r   r3   r4   r  r   )r6   r5   )r   r~   r;   rl   r   rH   r+  ri   r#   r  r  r   r   r$   r%   r'   r)   r-  valsr   rI  r,  s          r   test_unstack_nan_index2z,TestDataFrameReshape.test_unstack_nan_index2  s   T*--E!HH588LLMMYYW~&&||S#J''//22 1a8VRVRVRVQ1a8
 Cc4j))**RVQ1aAq1<<<EC:&1v1v.>tSk
 
 
 $C888
dE***T*--DqNNQ4FUSTXXVVWWYYW~&&||S#J''//22BFaVaVbfa[1a&AEC:&1v1v.>tSk
 
 
 RVQ1a(s333$C888
dE***T*--DqNNQ4FUSTXXVVWWYYW~&&||S#J''//22BFaVaVaVbfa[AEC:&1v1v.>tSk
 
 
 RVQ1a(s333$C888
dE*****r   c           	      d   t          t          d          t          dd                                          dz  t	          j        d          d          }t          j        |j        d<   |                    d	d
g          	                                }t	          j
        ddddt          j        dgt          j        dddddgg          }t          ddgd	          }t          dgt          dd          gg dg dgd d
g          }t          |||          }t          j        ||           d S )N
aaaaabbbbbr   rP   r   r6   r(  r3  r  r{   r|   r2   r   r5   rD   ru   rv   rw   r   r3   r4   r   r   )r   r   r   r   r   r   )rU   r   r5   r6   r2   rD   r  r   )r   r~   r   tolistr   r   rH   r+  ri   r#   r  r   r   r$   r%   r  s          r   test_unstack_nan_index3z,TestDataFrameReshape.test_unstack_nan_index3  s@   ,'' q999@@BBQFYr]] 
 
 ||S#J''//11x!Q1bfa0261aAq2IJKKS#JS)))E:lA>>>?%%%':':':;+
 
 
 $C888
dE*****r   c                 0   dt           j        t           j        dgddt           j        dgddt           j        dgg dg dg d	g}t          |g d
g d          }|                                                    g d                                          }t           j        t           j        dt           j        dgddt           j        dt           j        gg}t          ddgdggddgddggddg          }t          dgg dgg dg dgd dg          }t          |||          }t          j        ||           |j	        dd                                                              g d          }t          j        |                                |           d S )NHgi(Ur_  Pbg	VZ>)Sn@>]K=?)=()Agr_  r  r  )r  a2U0*#r  r  )agentchangedosages_id)ioC  pC  iqC  irC  isC  itC  r   )r  r  r  r  r  r  r  r   r5   rU   r  r  r  r  )r  r  r  r  r  )r   r   r   r   r   r   r5   r6   r2   rD   r  r  )
r   rH   r   r   ri   r#   r   r$   r%   rn   )r'   r  r)   r-  r   rI  r,  s          r   test_unstack_nan_index4z,TestDataFrameReshape.test_unstack_nan_index4  s    26269-#rvy)8RVY/111***///
 999<<<
 
 
 wwyy""#>#>#>??GGII VRVXrvs3(BFJ7

 	*VH5q6B7#8$
 
 
 J = = =>"??OOO4/
 
 
 $C888
dE***veff~""$$../J/J/JKK
dllnne44444r   c                 <   t          g dt          ddd          dt          j        d          z   t          j                            d                              d          dz                      d          d	          }|d
         t          j	        d          z
  |d<   t          j
        x|j        d<   |j        d<   t          j
        x|j        d<   |j        d<   |                    g d                              d
dg          }|                                j                                        dt#          |          z  k    sJ dD ]N}|                                D ]7\  }}|d         ||d
         |d         ff}||         |j        |         k    sJ 8Od S )N)r5   r6   r5   r6   r5   r6   z
2014-02-01ru   r   )r   freqd   r6   r(  )r  r  rq  rr  r  z
2014-02-02r  )r5   r  )r2   r  )r5   r  )rD   r  r  rp  r  )r   r   r   r   r   r   r   roundr   r   rH   rn   ri   r#   r  r   r  rI   iterrows)r'   r)   r-  r  r  r  rq   s          r   test_unstack_nan_index5z,TestDataFrameReshape.test_unstack_nan_index5  s   )))!,DDDRYq\\)	--a00@@CCbHOOPQRR	 
 
 uI\ : ::5	.0f4x26(+.0f4x26(+||11122::E5>JJzz||"&&((ABK7777! 	/ 	/C / /1hah% 99v#...../	/ 	/r   c                    t          ddd          }t          g dt          j        |ddfg                    }|rd nt          }d}t          j        ||          5  |                    |	          }d d d            n# 1 swxY w Y   t          j        t          d
          dg          }t          j        |dfg          }t          g d||          }	t          j
        ||	           d S )Ni  r5   r   r{   r|   r   z2The previous implementation of stack is deprecatedr\   r   rD   )r|   r7   )r   r   r   rf   r   r$   rg   r"   r<   r;   r%   )
r'   r   tr)   warnrp   r?   eidxecolsr@   s
             r   %test_stack_datetime_column_multiIndexz:TestDataFrameReshape.test_stack_datetime_column_multiIndex2  s1   T1a  |||Z-Cac]O-T-TUUU#7ttB'C888 	9 	9XX<X88F	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 &a&'9::&Cz22\\\uEEE
fh/////s   BBBmultiindex_columnsr  r   r5   r6   r2   )r   r5   r6   rD   rb   r   )r6   r2   rD   )rD   r2   r6   r5   r   )r2   r6   r5   r   )rD   r6   r5   r   )r6   r5   r   )r2   r6   r5   )rD   r2   r6   r   rU   c                 J   |sdnt           j        }t          j        g dddg          }||         }t	          t          j        dt          |          z                                dt          |                    |          }|	                    |||          }t          |t                    rZ|sX|	                    |d	|          }	t          |	t                    rt          j        ||	           nt          j        ||	           t          j        |j                                        |j        j                  |_        |	                    |||          }	t          |	t                    rt          j        ||	           d S t          j        ||	           d S )
NF)r|   rF   )r|   rT   )r{   rG   )r   rF   )r   uUpperLowerr   r2   r   r   dropnar   T)r   
no_defaultr   rf   r   r   r   rI   r   r"   r  intr
   r$   r=   r%   r9   to_numpyrk   )
r'   r  r   r   r  full_multiindex
multiindexr)   r?   r@   s
             r   test_stack_partial_multiIndexz2TestDataFrameReshape.test_stack_partial_multiIndex@  s   @ +>$0HHHG$
 
 
 %%78
Ia#j//)**221c*ooFF
 
 
 f<PPeS!! 	8, 	8 xxeD|xTTH(F++ 8&vx8888%fh777+J!!)9
 
 

 88%\8RRh'' 	4"6844444!&(33333r   c           	      d   t          j        g dddg          }t          t          j        d                              dd          |g d         	          }|sd
nt          j        }|                    ||          }t          ddgdt          j	        gddgdt          j	        ggt          t          d          g dgg dg dgd dg          t          ddgd                    }|d                             |j        j        d                   |d<   t          j        ||           d S )Nr  r  r  r   ru   r6   r2   )r   r5   r2   r   Fr  r   r   r5   rP   rD   )r  rF   rG   rT   r  )r5   r2   r5   r2   r  r|   r   r   r7   )r   rf   r   r   r   r   r   r  r"   rH   r;   r   rl   r#  r+  r$   r%   )r'   r   r  r)   r  r?   r@   s          r   test_stack_full_multiIndexz/TestDataFrameReshape.test_stack_full_multiIndex  sM   
 %0HHHG$
 
 
 ry||++Aq11?999;UVVV*>lCCVa[1a&1bf+6a"6"6"67#||\\\2Wo  
 3*7333
 
 
 !,,RY^A->??
fh/////r   orderedFTc                 B   t          j        t          d          t          d          |          }t          g dg|          }|                    |          }t          j        |j        |g          }t          g d|          }t          j
        ||           d S )Nyxzry   r   r  )r(  r>  r?  r   r   r:   )r   CategoricalIndexr~   r   r"   r   r<   r8   r
   r$   r=   )r'   r  r   cidxr)   r?   r  r@   s           r   %test_stack_preserve_categorical_dtypez:TestDataFrameReshape.test_stack_preserve_categorical_dtype  s     "4;;4;;PWXXX~t444|44 &$'788,,,d333
vx00000r   zlabels,datary   )r(  r>  r?  r<  r  r@  zyx)r  r@  r?  r<  r(  r>  c                 "   t          j        |t          |          |          }t          j        ddg|          }t          j        ||g          }t          t          |          g|          }|                    ddg|          }	|r|nt          |          }t          j        ||          }
|rt          |          n|}t          |t          j        t          d          |
|g          	          }t          j
        |	|           d S )
Nr  r  v)r  r   r   r5   r   r:   )r   r  r  r   r<   r   r"   r
   r;   r$   r=   )r'   r  labelsro   r   r  cidx2r  r)   r?   s_cidxexpected_datar@   s                r   +test_stack_multi_preserve_categorical_dtypez@TestDataFrameReshape.test_stack_multi_preserve_categorical_dtype  s
    "6fVnngVVV#S#J@@@&e}55t~t4441a&|<<';VF^^$VW===(4>t$!8%((FE9R!S!S
 
 
 	vx00000r   c                 @   t          j        g d          }t          ||d          }|                    |          }t	          j        t          d          ddgg          }t          t          j        g d          |          }t          j	        ||           d S )	N)r3   r3   r4   r   r{   r|   r   rD   r{   r|   )r3   r3   r3   r3   r4   r4   r   r   r:   )
r   r   r   r"   r   r<   r;   r
   r$   r=   )r'   r   r   r)   r?   r8   r@   s          r   ,test_stack_preserve_categorical_dtype_valueszATestDataFrameReshape.test_stack_preserve_categorical_dtype_values  s    
 n11122Ss++,,|44'qC:(>??NCCCDDE
 
 
 	vx00000r   r8   r  )r   r   r6   r2   c                    t          j        ddgddgg          }t          ||                              d          }|                    |          }t          j        |j                                                  }t          |                                ||j                  }t          j
        ||           t          j        |j        j                  }t          j        |j                  }	t          j        ||	           d S )Nr5   r6   r3   r4   r7   r   )r   r<   r   fillnar"   rf   r8   r  r9   r$   r%   r   asarrayr  assert_numpy_array_equal)
r'   r8   r   r9   r)   r*   	new_indexr@   stacked_codesexpected_codess
             r   )test_stack_multi_columns_non_unique_indexz>TestDataFrameReshape.test_stack_multi_columns_non_unique_index  s     )Aq6C:*>??UG444;;A>>(((55*7=+A+A+C+CDD	i
 
 
 	gx000
7=#677IO44
#M>BBBBBr   z,vals1, vals2, dtype1, dtype2, expected_dtyperC   r   Int64Float64r   r   stringr  c                 >   t          t          ||          t          ||          d          }|                    |          }|                    t                                        |                              |          }	t          j        ||	           d S )NrQ   )r{   r5   )r{   r6   r   )r   r
   r"   rl   r  r$   r%   )
r'   vals1vals2dtype1dtype2expected_dtyper   r)   r?   r@   s
             r   .test_stack_multi_columns_mixed_extension_typeszCTestDataFrameReshape.test_stack_multi_columns_mixed_extension_types  s      f555 f555 
 
 |44IIf###>>EEnUU 	 	fh/////r   c                    t          j        g dddg          }t          t          j        g dd          t          j        g d          d	|
          }|                    |          }|                    t                                        |          }|dk    r)|d	         	                    t          j
                  |d	<   n(|d         	                    t          j
                  |d<   t          |j        j        gdz  |j        j        gdz  z   |j        
          }t!          j        |j        |           t!          j        |                    t                    |           d S )N)r{   r   r  )r|   r5   r3   r4   r   )r   r5   Nr  rQ   r_   r  r:   rB  r   r  r6   )r   rf   r   r   r  r   r#   rl   r  r  NAr
   r{   rR   r|   r9   r$   r=   r#  r%   )r'   r   r8   r)   r?   r@   expected_dtypess          r   "test_unstack_mixed_extension_typesz7TestDataFrameReshape.test_unstack_mixed_extension_types  s`   &'E'E'EcSVZXXXXlll':::^OOO44  
 
 
 %((99V$$,,5,99A::#+J#7#>#>ru#E#EHZ  !)(!3!:!:25!A!AHX TZL1
|a//v~
 
 
 	v}o>>>
fmmF33X>>>>>r   bazc                    t          j        t          d          ddggddg          }t          ddgdd	gg|d
dg          }d|j        _        t          g dgt          j        g dddg                    }d|j        _        |                                	                    d          
                    d|          }t          j        ||           d S )Nr5   r   r   r   r  r   r   r6   r2   r|   r{   r7   r   )r2   r5   r6   r   ))r   r{   )r   r|   )r   r{   )r   r|   r   r5  )r6  r   )r   r<   r;   r   r9   rd   rf   r8   r#   	swaplevel
sort_indexr$   r%   )r'   r   r  r)   r@   r?   s         r    test_unstack_swaplevel_sortlevelz5TestDataFrameReshape.test_unstack_swaplevel_sortlevel  s     $eAhhc
%;E5>RRRAA'rC:FFF
\\N*@@@PU  
 
 
 $''Q'//:::OO
fh/////r   )>__name__
__module____qualname__r   markfilterwarningsr0   rA   rN   rs   r   r   r   r   r   r   parametrizer   rf   r   r   r   r   r   r   r	  r  r  r&  r   rD  r   r.  r1  r;  rH   rJ  rO  rS  r]  rd  ro  r~   r;   r  r   permutationsr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  ry  r   r   r   r      s
       [C > > >$ [C 0 0 0.	. 	. 	. [C 00 00 00d&0 &0 &0P0 0 0,0 0 0,0 0 0< 0  0  0D0 0 02 [H |||\\\<<<H&
&444S#J   '
&DDD,  
 ")))+C+C+CDq!f3'''&
&	 	 	 211  		
! !D0 0E! !D0(( (( ((T [C 
 
 
< [C 6
 6
 6
p [C ;
 ;
 ;
z& & & [C 0 0 04. . .6/1 /1 /1b [RXa[[("(1++&RYq%%%yryBd'C'C'CD	
 + + +. [C 8 8 8A A A0 [,+++bfc1-=1~N---1~Q?OP	
 0 0 0" [VsCj%%++%>??0 0 @?00 0 0,K K K0 0 0& [U^^$DEE[UDDqNN33! ! 43 FE!: [U$:I$:;P;P;P$Q$QRR[UDDqNN33[UUEN33;! ;! 43 43 SR;!z/+ /+ /+b+ + +0'5 '5 '5R/ / /.0 0 0 [C  [OOLLLLIIIIIIFFFCCCOOLLLLIIIIIIFFF+	
 4 [Wr1a!Q!Q&@AA4 4 BA5  <4B [C 0 0 0* [C  [Y661 1 76 1 [C  [Y66[T%[[2223T%[[2223	
 1 1  76 1& [C 	1 	1 	1 [C  [LLLLLL	
 C C  C [C  [6Vc3Z)Y?VeU^WhA	
 0 0  0  [Wq!f--? ? .-?. [Wq%j110 0 210 0 0r   r   rR   r   r  c                    t          j        g d          } | t          j        dd          ||          }|                    dd          }| t
          u rt          j        dd	g          }nd
dg}t          ddgddggt          j        ddg          ||          }t          j        ||           |                    dd          }| t
          u r)t          t          d          ddggddgddgg          }nddg}|dk    rt          j
        nt          j        }t          d|g|dgd|g|dgg|t          j        g d          |          }t          j        ||           |                    ddgd          }| t
          u r/t          t          d          ddgddggddgddgddgg          }nt          j        ddg          }t          ddgddggd
dg||          }t          j        ||           d S )N))r  rT   r4   )r  rG   r3   )r  rT   r4   )r  rG   r3   r   r   rZ   r   Fr   sort)r   r  )r   r  r  r  rC          @r   )rT   r4   )rG   r3   )r8   r9   rR   rU   r5   r4   r3   r  r  ))r  rT   )r  rG   )r  rT   )r  rG   r9   r8   rR   r6   rT   rG   )r   rf   r   r   r#   r   r$   r%   r;   r   r  rH   )frame_or_seriesrR   r8   objr?   r   r@   items           r   test_unstack_sort_falser'  2  s    "TTT E /")C--U%
H
H
HC[[qu[--F)##%1:z2JKK!5>
sc3Z $j*%=>> 	  H &(+++[[r[..F)##%!HHsCj)1a&1a&1A
 
 
  :Y&&255BFD
ttSkC;s< $DDD
 
   H &(+++[[1vE[22F)##%!HHsCj3*5q!fq!fqRSf=U
 
 
 &1:z2JKK
sc3Z en 	  H &(+++++r   zlevels2, expected_columns)Nr5   r6   r2   value)r(  r5   )r(  r6   )r(  r2   )r5   Nr6   r2   )r5   r6   Nr2   )r5   r6   r2   N)z	nan=firstz
nan=secondz	nan=thirdznan=last)idsc           	         ddg}t          j        || gddg          }t          dg di|          }|                    dd	
          }ddgddgddgddgg}t          t	          t          ||                    t          ddgd          t          j        |d dg                    }t          j	        ||           d S )Nr4   r3   level1level2r   r(  )r   r5   r6   r2   rD   rP   ru   rv   r:   Fr   r   rD   r5   rP   r6   ru   r2   rv   r   r7   )
r   r<   r   r#   dictr  r   rf   r$   r%   )levels2r   levels1r8   r)   r?   r  r@   s           r   test_unstack_sort_false_nanr0  m  s    0 CjG#Wg$6x>RSSSE	G5556e	D	D	DBZZhUZ33FVaVaVaV4MS!=1122S#JX...&'7h?OPPP  H
 &(+++++r   c                     t          g dd          } t          j        g d          | _        |                                 }t          dt          j        dgddt          j        gdt          d	          t          
          }t          j        ||           |                     d          }t          g dg ddt          d	          t          
          }t          j        ||           d S )Nr   r  rQ   rS   r3   r4   r   rX   ry   rZ   r   rV   )r3   r   r3   )r4   r   r   )r
   r   rf   r8   r#   r   r   rH   r~   r  r$   r%   )ro   r?   r@   s      r   test_unstack_fill_frame_objectr2    s    &&&h777D'888 DJ
 \\^^FBFC S"&'9::5kk  H
 &(+++ \\S\))FooOOO44DKKv  H &(+++++r   c            
         t          t          j        dd          gdgdgdgdg d          } |                     ddg                                          }t          t          j        dd          dggt          dgd	          t          d
dgdggddgddggd dg                    }t          j        ||           d S )Nz2017-08-27 01:00:00.709949+0000UTC)tzr3   r4   r   )	timestampr3   r4   r   r   r   r6  r   r5   r  r7   )	r   r   r   ri   r#   r   r   r$   r%   )r)   r?   r@   s      r   "test_unstack_timezone_aware_valuesr7    s   	,'HUSSST		
 	
 -,,
 
 
B \\3*%%--//F
,8U
C
C
CS	IJSE$$$ #&.q6Aq6"+
 
 
  H &(+++++r   r   c           	         t          dddd          }t          d|ig d          }|                    | 	          }t          |t	          g ddggg d
g dg                    }t          j        ||           d S )Nr   2018010120180103zAmerica/New_York)r  startendr5  r{   r   r:   r   rb   r   r   r   r  )r   r   r"   r
   r   r$   r=   )r   tsr)   r?   r@   s        r    test_stack_timezone_aware_valuesr?    s     
JJCU	V	V	VB	C9OOO	4	4	4BXX<X00F
3% 8III@VWWW  H 68,,,,,r   r  c                     t          j        d          t          j        d          g}t          t          j        t          |g g g                    }|rs| t          j        uret          j	        t          d          5  t          t          j                                      | |           d d d            d S # 1 swxY w Y   d S t          t          j                                      | |          }t          j        ||           d S )Nr   r  )rR   r8   dropna must be unspecifiedr\   rQ   r  )r   
RangeIndexr
   r   r   r   r   r  r   r   r   r   r"   r$   r=   )r  r   r>   r@   r?   s        r   test_stack_empty_framerC    sY    mAa 0 01FBJjrSUh.W.W.WXXXH 1cn44]:-IJJJ 	X 	XBJ'''--V,-WWW	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X ,,,22 3 
 
 	vx00000s    0B==CCc                     |rs| t           j        uret          j        t          d          5  t          t          j                                      | |           d d d            d S # 1 swxY w Y   d S |}|	                                                    g | |          }t          j        ||           t                      }t                                          g | |          }t          j        ||           d S )NrA  r\   rQ   r  r  )r   r  r   r   r   r   r   rm   r"   r   r$   r%   )r  r   	int_framer@   r?   s        r   test_stack_empty_levelrF    sS     0cn44]:-IJJJ 	V 	VBH%%%++6+UUU	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V !!''V, ( 
 
 	fh///;;""F"VV
fh/////s   0A))A-0A-rW   c                    |r| t           j        uryt          j        t          d          5  t          t          j                                      | |          	                    |           d d d            d S # 1 swxY w Y   d S t          t          j                                      | |          	                    |          }t          t          j                  }t          j        ||           d S )NrA  r\   rQ   r  rV   )r   r  r   r   r   r   r   rm   r"   r#   r$   r%   )r  rW   r   r?   r@   s        r   test_stack_unstack_empty_framerH    s2   
  0cn44]:-IJJJ 	- 	-BH%%%++L ,  gg,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- BH%%%U&|U<<W
W++ 	
 28,,,
fh/////s   AA==BBc                      d} t          j        t          |           5  t          t          j                                                   d d d            d S # 1 swxY w Y   d S )Nz'index must be a MultiIndex to unstack.*r\   rQ   )r   r   r   r
   r   rm   r#   )rp   s    r    test_unstack_single_index_seriesrJ    s    
4C	z	-	-	- ) )RX&&((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   -AAAc            	         t          ddgddgddgddgdd	gd
          } |                     g d          } |                     dgd          } |                     dd                              dd          }|                     ddgd          }t          g dg dgt          ddgd          t	          j        g dg d                    }t          j        ||           d S )NAliceBob      #@rw   FTr   femalemale)rd   scoreemployedkidsgender)rd   rR  rS  rT  rT  rV   rR  rS  )rN  r_  r_  r_  )r_  r_  r_  g       @rd   r   ))rQ  rO  Fr   )rQ  rO  Tr   )rQ  rP  Fr   )rQ  rP  Tr   )NrT  rR  rS  r   r7   )r   ri   r#   r   r   rf   r$   r%   )r)   r@   r?   s      r   test_unstacking_multi_index_dfrU    s;   	e$1XF(	
 	

 
B 
<<<	=	=B	XJ1	-	-Bzz*z33;;Fq;QQHZZV,Z;;F			3334We$6222&   766
 
 
  H &(+++++r   c                 f   t          j        ddgddg          }t          g dg|          }|                    d|           }t	          d	d
gd          }t          t          d          dd	ggddgddggd dg          }t          ddgddgg||          }t          j        ||           d S )NrE   )rG   rT   r3   r   r5   r5   r5   r5   r   r   r   rG   rT   r   r5   rF   r  r7   )r   r<   r   r"   r   r;   r$   r%   )r   r9   r)   r?   new_columnsr  r@   s          r   2test_stack_positional_level_duplicate_column_namesrY  ,  s     %z:&>sCjQQQG	LLL>7	3	3	3BXXalX33Fc
---Ka3*%q!fq!f-=dC[  I 1a&1a&)KPPPH&(+++++r   c                  N   t          j        t          d          g dg          } t          t          j                            d                              d          t          j                            d                              d                              t          j	                  t          j                            d                              d          t          j                            d                              d          d|           t          d j        j        D                       sJ                                 }t          j        fdt          d	          D             t          d	          d
          }t!          j        ||           d S )NrP   r3  r6   r@  r  r:   c              3   0   K   | ]}|j         j         V  d S r   )mgr_locsis_slice_liker   rF   s     r   	<genexpr>z5test_unstack_non_slice_like_blocks.<locals>.<genexpr>I  s*      DD1:++DDDDDDr   c                 D    g | ]}|                                          S ry  )r#   )r   nr)   s     r   r   z6test_unstack_non_slice_like_blocks.<locals>.<listcomp>M  s%    <<<a"Q%--//<<<r   rD   r5   )keysr6  )r   r<   r;   r   r   r   r   r   rl   rm   anyrJ   rK   r#   r   concatr$   r%   )r  rM   r@   r)   s      @r   "test_unstack_non_slice_like_blocksre  <  sb    
	 %((OOO!<	=	=B	y$$Q''77;;y$$Q''77;;BB28LLy$$Q''77;;y$$Q''77;;		
 	
 
 
 
B DDRW^DDDDDDDD
**,,Cy<<<<588<<<588RSTTTH#x(((((r   c           	         g dg dddt           j        t           j        gg}t          |t          ddgddggg d	g d
g                    }| ri nddi} |j        d d| d|}| rMt          dddddt           j        gdddddt           j        gdt          j        g dg dg                    }n0t          g dg ddt          j        g dg dg                    }t          j        ||           t          |t          j        g dg dg                    }| ri nddi} |j        d d| d|}t          j        ||           d S )!N)r5   r6   rC   r   )r6   r2   r   r   r2   rD   r|   r{   rF   rG   r  r  r  r   r!  Fr   r   r   rC   r"  r   r   rE   )r   r   r5   r5   r6   r6   )r|   r{   r|   r{   r|   r{   r:   )r   rC   r"  r   rC   )r"  r   rC   r   r   )r   r   r5   r5   r6   )r|   r{   r|   r{   r|   )r|   r|   r{   r{   )rF   rG   rF   rG   ry  )r   rH   r   r   r"   r  r$   r%   )r   ro   r)   kwargsr?   r@   s         r   test_stack_sort_falserh  Q  s    ...Arvrv0FGD	#Jc
+LLL,,,3O
 
 

 
 
B  4RRfe_FRXCALCCFCCF 
3S#rv63S#rv6  (###%C%C%CD 
 
 
 +++2K2K2KLL(///;T;T;T)UVV
 
 
 &(+++ 
&(<(<(<>R>R>R'STT
 
 
B  4RRfe_FRXCALCCFCCF&(+++++r   c                    t          j        ddg          }t          ddgddggddg|	          }| ri nd
di} |j        ddgfd| i|}t          j        g d          }t	          g d|          }t          j        ||           d S )N)weightkg)heightmr   r"  rC   r   r   r   r7   r!  Fr   r5   r   ))r   rj  rk  )r   rl  rm  )r   rj  rk  )r   rl  rm  )r   r"  rC   r   r:   )r   rf   r   r"   r
   r$   r=   )r   r   r)   rg  r?   r   r@   s          r   !test_stack_sort_false_multi_levelrn  x  s     
 "2O!D
E
EC	S#Jc
+E5>3	O	O	OB4RRfe_FRXq!fBB<B6BBF+	
 	
 	
 N ***.AAAH68,,,,,r   c                   
   e Zd Zd Zej                            dg dg dgg ddg dfg dg d	gg d
dg dfg dg dgg d
dg dfg          d             Zd Zej        	                    d          d             Z
ej        	                    d          ej                            d ed           eddgddgg ej         ej        d                              d          d           ej        g dd          g          g ej        d           eddgddgddgg ej         ej        d                              d          d           ej        g dg d           ej        g dd          g          gg          d                          Zej        	                    d          d!             Zej        	                    d          d"             Zej        	                    d          d#             Zej        	                    d          d$             Zej        	                    d          ej                            d%d&d'g          d(                         Zd) Zej        	                    d          d*             Zej        	                    d          d+             Zej        	                    d          d,             Zej        	                    d          d-             Zd. Zd/ Zej        	                    d          d0             Zej        	                    d          d1             Z d2 Z!d3 Z"ej        	                    d          d4             Z#ej        j$        d5             Z%ej        	                    d          ej                            d6e&j'        (                    d7 d8D                                 ej                            d9 e)d                    d:                                     Z*ej        	                    d          d;             Z+ej        	                    d          d<             Z,ej        	                    d          d=             Z-d> Z.ej        	                    d          d?             Z/d@ Z0dA Z1ej        	                    d          dB             Z2ej        	                    d          dC             Z3ej        	                    d          dD             Z4dE Z5ej        	                    d          dF             Z6ej        	                    d          dG             Z7dH Z8dS )ITestStackUnstackMultiLevelc                    |}|                                 }|                                  |                    t                                                      |                    t          j                                                    d S r   )r#   rl   r  r   r   )r'   /multiindex_year_month_day_dataframe_random_dataymdr,   s       r   test_unstackz'TestStackUnstackMultiLevel.test_unstack  sl    =KKMM	 	

3!!! 	

28$$&&&&&r   z5result_rows,result_columns,index_product,expected_row)r5   r5   NN      >@N)r6   r6   NNru  N)ix1ix2col1col2col3col4r6   )NNru  N)r5   r5   NNru  )r6   r6   NNru  )rv  rw  rx  ry  rz  )NNru  )r6   NNNru  Nc                 H   t          ||                              ddg          }|j        dd                             d          }t          |gt	          j        |dd          |ggd dg          t          dgd                    }t          j        ||           d S )	Nr   rv  rw  r5   r6   r   r   r   )	r   ri   r+  r#   r   r<   r   r$   r%   )r'   result_rowsresult_columnsindex_productexpected_rowr?   r@   s          r   test_unstack_partialz/TestStackUnstackMultiLevel.test_unstack_partial  s    < ;???IIEN
 
 QqS!))%00N+#m_5dE]   %(((
 
 
 	fh/////r   c                 :   t          j        g d          }t          t          j                            d                              d          |          }|                    ddg          }|                    dd          }t          j
        ||           d S )N))r   r   r   )r   r   r   )r5   r  r5   )r5   quxr5   r6   rD   r:   r5   r7  r6  how)r   rf   r
   r   r   r   r   r#   r  r$   r%   )r'   r8   rr   r,   r@   s        r   &test_unstack_multiple_no_empty_columnszATestStackUnstackMultiLevel.test_unstack_multiple_no_empty_columns  s    &HHH
 
 29((++;;A>>eLLLIIq!f%%	###66
i22222r   r   c                 R	   |}|                                 }|                    |          }|r|                    d          }t          j        ||           |                    d          }|                     d          }|                    |          }|r|                    d          }t          j        |                    d          |           |d d d         }|                     d          }|                    |                              dd          }|r|                    d          }t          j        |                    d          |           |                    dd          }|                     d                              ddd	          }|                    d|                              dd          }|r|                    d          }t          j        |                    d          |           |                                 }|                    |          }|r|                    d          }t          j        ||           |                     d                               d          }|                    d|          }|                                 }t          j        ||           |                    d|          }|                     d          }t          j        ||           |                    d|          }|                    |                               d                               d          }t          j        ||           |                     d          j        d d d d d
f         }|                    |                              |          }	|                    |          }
|r,|	                    d          }	|
                    d          }
t          j        |	|
	                    |	j
                             |                     d                              d|          }|                     d                              d|          }t          j        ||           d S )Nr   r7  r  r6   rB  r   rU   r5   r5  r2   r   )r#   r"   r  r$   r%   r  r  rn   r=   reindexr8   assert_equal)r'   rr  r   rs  r,   	restackedunlexsortedr?   r@   r*   ymd_stackeds              r   
test_stackz%TestStackUnstackMultiLevel.test_stack  sR    > KKMM	OOO>>	 	4!((U(33I
i---nn1n--''**	OOO>>	 	4!((U(33I
i222;;SAAA!$$B$'''**	OOO>>HHANN	 	4!((U(33I
i222;;SAAA!++Aq11''**44Q4BB	OOALOAAKKAqQQ	 	4!((U(33I
i222;;SAAA KKMM	OOO>>	 	4!((U(33I
i--- KKNN**1--	>>;;==
fh///>>;;q>>
fh///>>99,977??BBJJ1MM
fh/// KKNN&qqq##A#v.	//|/<<BB% C 
 
 ii\i:: 	8nnn//G%,,,77K
w(;(;GM(J(JKKK Q%%b|%DD;;q>>'''EE
)))))r   zidx, exp_idxababr3   r4   r  r  r2   )r   r5   r   rD   r  )r3   r6   r4   r5   r3   r5   )r4   r6   r5   )r5   r   r5   )r2   ru   r2   c                    t          t          j        d                              dd          |g d          }|rNd}t	          j        t          |          5  |                    |           d d d            d S # 1 swxY w Y   d S |                    |          }t          t          j        d          |	          }t          j
        ||           |j        j        d
u sJ |j        |j        }	}t          j        ||	           d S )Nr?  rD   r2   )r  r  r  r7   z8Columns with duplicate values are not supported in stackr\   r   r:   F)r   r   r   r   r   r   r   r"   r
   r$   r=   r8   	is_uniqueassert_index_equal)
r'   r   exp_idxr   r)   rp   r?   r@   liris
             r   test_stack_duplicate_indexz5TestStackUnstackMultiLevel.test_stack_duplicate_index  sY   8 IbMM!!!Q'')))
 
 

  
	*LCz555 4 4l3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 XX<X88Fbimm7;;;H"68444<)U2222\8>B!"b)))))s   A>>BBc                    t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   dgdz  d	gdz  z   dgd
z  z   d	gdz  z   ddgdz  g dz   gg d          }t          t          j        dd          t          j        dd          d|          }|                    d          }|                    |          }|r|                    d          }t          j	        ||           d S )NFrirD   Satr6   SunThur2   DinnerLunchrP   NoYes)r  r  r  )daytimesmokerr   r>  r   rQ   )r  rI   r:   r   r7  r  )
r   r  r   r   r   r#   r"   r  r$   r%   )r'   r   r  r)   r?   reconss         r   test_unstack_odd_failurez3TestStackUnstackMultiLevel.test_unstack_odd_failureK  s8    #!ugk)UGaK75'A+E
Q'Q.(a?7)a-Ou!$7$7$77
 ,++
 
 
 y9555y9555  
 
 
 A<88 	.]]u]--F
fb)))))r   c                 ^   |}|j         }d|d<   |                    dd          }|                    |          }|d                             |                                          }t          j        |d         |d           |j        J |d         j        t          j        k    sJ d S )	Nr   )r   fourr5   )r   r6  r   Fr   r   )	r&   r  r"   r$   r=   rd   rR   r   r   )r'    multiindex_dataframe_random_datar   framer)   r*   r?   s          r   test_stack_mixed_dtypez1TestStackUnstackMultiLevel.test_stack_mixed_dtypeg  s     1W!=]]]++(((55El;;FFHH
wu~v5IIII{"""u~#rz111111r   c           	         t          g dg dg dg dt          j        d          d          }|                    g d                              t
                    }|                                }|                    |          }t          j	        ||
                    |j                                      t                               d S )	N)naiver  r  activer  r  )r3   r4   r4   r4   r3   r3   )r5   r6   r2   rD   r5   r2   )hir  byer  r  peaceg      @)r   r   barcoder  extra)r   r   r  r  r   )r   r   r   groupbyr  rI   r#   r"   r$   r=   r  r8   rl   rh   )r'   r   r)   r?   r,   r  s         r   test_unstack_bugz+TestStackUnstackMultiLevel.test_unstack_bugw  s     RRR555---???3 
 
 <<<==CCCHHNN$$	OOO>>	
y&..*I*I*P*PQV*W*WXXXXXr   c                     |}|                                 }|j        j        dk    sJ |j        j        ddgk    sJ |                    |          }|j        j        |j        j        k    sJ d S )Nr  r   r  r   )r#   r8   rd   r9   rk   r"   )r'   r  r   r  r,   r  s         r   !test_stack_unstack_preserve_namesz<TestStackUnstackMultiLevel.test_stack_unstack_preserve_names  s|     1MMOO	#w.... &5(*;;;;;OOO>>	$(9999999r   methodr"   r#   c                    |}|j         d         }|dk    rd|ini }t          j        t          d          5   t	          ||          d	i | d d d            n# 1 swxY w Y   |dk    r]|j        d d df         }t          j        t          d          5   t	          ||          d	i | d d d            d S # 1 swxY w Y   d S d S )
Nr   r"   r   zdoes not match index namer\   mistaker#   r   )r  )rn   r   r   KeyErrorgetattrr+  )r'   r  r  r   r  r)   rg  rr   s           r   #test_stack_unstack_wrong_level_namez>TestStackUnstackMultiLevel.test_stack_unstack_wrong_level_name  s}    1 Yu39W3D3D.,//"]8+FGGG 	5 	5GB44V444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 Y1Ax/JKKK 8 8"6""777778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 s#   AA!AB;;B?B?c                     |}|                     d          }|                     d          }t          j        ||           d S )Nr  r5   rB  r   )r'   r  r  r?   r@   s        r   test_unstack_level_namez2TestStackUnstackMultiLevel.test_unstack_level_name  sD    0x((==q=))
fh/////r   c                 b   |}|                     d          }|                    d|          }|                                                     d|          }t          j        ||           |                    d|          }|                    |          }t          j        ||           d S )Nr  r   r   r   )r#   r"   r$   r%   r=   )r'   r  r   r  r,   r?   r@   s          r   test_stack_level_namez0TestStackUnstackMultiLevel.test_stack_level_name  s     1MM(++	\BB==??(((FF
fh///U>>;;L;99
vx00000r   c                 n   |}|                     ddg          }|                     d                               d          }t          j        ||           |j        j        |j        j        k    sJ |d         }|                     ddg          }t          j        ||d                    |                    ddg|          }|r|                    d          }|                    dd                              dd	          }|                    d
          }t          j        ||           |j	        j        |j	        j        k    sJ |                     dd	g          }|                     d                               d                              dd          }t          j        ||           |                     d	dg          }|                     d	                               d                              dd          }t          j        ||j
        d d |j        f                    d S )Nyearmonthr{   r   r7  r  r   r5   r6   rB  r  )r#   r$   r%   r9   rk   r"   r  r  r  r8   rn   )	r'   rr  r   rs  r,   r@   rr   s_unstackedr  s	            r   test_stack_unstack_multiplez6TestStackUnstackMultiLevel.test_stack_unstack_multiple  s    >KK 122	;;v&&..w77
i222 &(*:*@@@@@ Hii 122
k8C=999OOVW$5LOQQ	 	4!((U(33I''1--771==	((q(11	
i---$	7777 KKA''	;;q>>))!,,333FF
i222KKA''	;;q>>))!,,333FF
iaaa9J6J)KLLLLLr   c                     |}|                     ddg          }t          j        t          d          5  |                    ddg|           d d d            d S # 1 swxY w Y   d S )Nr  r  zlevel should containr\   r   r   )r#   r   r   r   r"   r'   rr  r   rs  r,   s        r   test_stack_names_and_numbersz7TestStackUnstackMultiLevel.test_stack_names_and_numbers  s     >KK 122	 ]:-CDDD 	E 	EOOQL|ODDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   AA #A c                 j   |}|                     ddg          }t          j        t          d          5  |                    ddg|           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    d	d
g|           d d d            d S # 1 swxY w Y   d S )Nr  r  zToo many levelsr\   r6   r2   r   znot a valid level numberrg  rf  )r#   r   r   
IndexErrorr"   r  s        r   !test_stack_multiple_out_of_boundsz<TestStackUnstackMultiLevel.test_stack_multiple_out_of_bounds  sL    >KK 122	]:->??? 	? 	?OOQFO>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?]:-GHHH 	A 	AOORH<O@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As#   AA"AB((B,/B,c           
         t          j        g ddd          }t          ddgdz  d	          }g d
}t          j        ||g          }t          ||          }|                                }|                    d          }|                    d          }t          j        g ddd          }	t          g dg dd|	ddg          }
d|
j        _	        t          j        ||
           t          j        ||
           t          j        ||
j                   t          j        g ddd          }t          j        g ddd          }t          j        ||g          }t          ||          }|                                }|                    d          }|                    d          }t          j        g ddd          }	t          j        g ddd          }t          t          j        t          j        t          j        t          j        ddgt          j        t          j        ddt          j        t          j        gddt          j        t          j        t          j        t          j        gg|	|          }
t          j        ||
           t          j        ||
           t          j        ||
j                   d S )N)2013-01r  2013-02r  2013-03r  Mperiodr  rd   r{   r|   r2   strr   r5   r6   r2   rD   rP   ru   r:   r5   rB  r   )r  r  r  )r5   r2   rP   )r6   rD   ru   r  r7   period1)2013-122013-112013-102013-092013-082013-07period2)r  r  r  r  r  r  r6   rD   ru   rP   )r   PeriodIndexr   r   r  r
   r#   r   r9   rd   r$   r%   r&   r   rH   )r'   idx1idx2r(  r   rr   result1result2result3e_idxr@   e_colss               r   test_unstack_period_seriesz5TestStackUnstackMultiLevel.test_unstack_period_series	  s   ~NNN
 
 

 c3Z!^%000"""$dD\225$$$))++))!)$$))!)$$---Ch
 
 
 ))))),,EC:
 
 
 !&
gx000
gx000
gxz222~NNN
 
 
 ~NNN
 
 

 $dD\225$$$))++))!)$$))!)$$---Ci
 
 
 NNN
 
 

 A6Arvrv6Arvrvrvrv6
 
 
 
 	gx000
gx000
gxz22222r   c                    t          j        g ddd          }t          j        g ddd          }g dg dd	}t          j        ||g          }t	          ||
          }|                                }|                    d          }|                    d          }t          j        ddgdd          }	t          j        g ddd          }
t          j        d                                |
g          }t	          g dg dg|	|          }t          j        ||           t          j        ||           t          j        g ddd          }	t          j        g ddd          }
t          j        d                                |	g          }t	          g dg dg dg|
|          }t          j        ||           d S )N)2014-012014-02r  r  r  r  r  r  r  )r  r  r  r  r  r  r  r  )ru   rP   rD   r2   r6   r5   r  r:   r5   rB  r   r  r  )r  r  r  r  r  r  zA A A B B B)rP   r5   ru   r6   ru   r5   )rD   r6   r2   r2   rP   rD   r7   )r  r  r  r  )r  r  r  zA A B B)rP   rD   r6   r2   )r5   r6   ru   rP   )ru   r2   r5   rD   )	r   r  r   r  r   r#   r  r$   r%   )r'   r  r  r(  r   r)   r  r  r  e_1e_2r  r@   s                r   test_unstack_period_framez4TestStackUnstackMultiLevel.test_unstack_period_frameN  s-   ~NNN
 
 

 ~NNN
 
 

 )((/A/A/ABB$dD\22uC(((**,,**1*%%**1*%%ni3#INNNnNNN
 
 

 ')<)<)>)>(DEE!3!3!34C
 
 
 	gx000
gx000n888s
 
 
 n---Ci
 
 
 '):):C(@AA\\<<<6c6
 
 
 	gx00000r   c                    dgdz  dgdz  z   }dgdz  dgdz  z   }t          j        g ddz            }t          j                            d                              ddd	          }t          ||||d
          }|                    ddg          }d|j        _	        |
                    d          }	t          j        d          }
|rd}
t          j        t          |
          5  |	                    d                                           d d d            n# 1 swxY w Y   |	                    d                              d          }|                    d|          }|	j        d d dgf                             d                                                              d|          }d|j        _	        t)          j        ||           d S )Nr5   r2   r6   r3   r4   )z
2013-01-03z
2013-01-04z
2013-01-05r   r  ru   )IDNAMEDATEVAR1r  r  Paramsz&agg function failed [how->mean,dtype->z-dtype 'str' does not support operation 'mean'r\   zW-THUT)numeric_onlyr   r  )r   to_datetimer   r   r   integersr   ri   r9   rd   r#   reescaper   r   r   resamplemeanr"   rn   r$   r%   )r'   r   r%  id_colrd   datevar1r)   multiunstrp   downr  r  s                 r   test_stack_multiple_bugz2TestStackUnstackMultiLevel.test_stack_multiple_bug}  s   
 #'qcAg&	seai(~HHH1LMMy$$Q''00C;;fdD$OOPPfd^,,%}}T""i@AA 	BAC]9C000 	* 	*MM'""'')))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*}}W%%***==ZZ<Z88HQQQ[!XgTVVU4lU33	 	 #

b"%%%%%s   '(DD"Dc                    t          ddgddgddgd          }|                    ddg          }|sd	nt          j        }|                                                    ||
          }t          |          t          |                                          k    sJ |r_t          j	        t          d          5  |                                                    d|
           d d d            d S # 1 swxY w Y   d S |                                                    d|
          }t          j        ||                                           d S )Na1a2b1b2r5   r3  r{   r|   Fr  rA  r\   T)r   ri   r   r  r#   r"   rI   r  r   r   r   r$   r%   )r'   r   r)   r  r*   s        r   test_stack_dropnaz,TestStackUnstackMultiLevel.test_stack_dropna  s   
 dD\tAq6JJKK\\3*%%*>**,,$$F$NN7||c'.."2"2333333 	=z1MNNN K K

""$\"JJJK K K K K K K K K K K K K K K K K K jjll((<(PPG!'7>>+;+;<<<<<s   ;*C22C69C6c                     t          g dg dg dgg dg dg          }g d|j        _        dd	g|j        _        |                    d
dg           d S )N)r   r   r   r   r5   r5   r5   r5   )r   r   r5   r5   r   r   r5   r5   r   r5   r   r5   r   r5   r   r5   r  r  r7   r   r   r   r4   r   )r   r8   rk   r9   r#   )r'   r   r)   s      r   "test_unstack_multiple_hierarchicalz=TestStackUnstackMultiLevel.test_unstack_multiple_hierarchical  s    (((((((((
 "\\<<<0
 
 
 ):
 	

C:r   c           
         d}t          t          j                            d                              d|          t          j                            d                              d|          t          j                            d                              dd	|          t          j                            d
                              dd|          t          j                            d                              d|          t          j                            d	                              |          d          }|                    g d          }|                    d           d S )N  r6   r  )sizer2   i,  rD   irv   rP   i   ru   i  )r{   r|   r   r   r   r   )r{   r|   r   r   r   r   )r   r   r   r   r  r   ri   r#   )r'   NUM_ROWSr)   idfs       r   test_unstack_sparse_keyspacez7TestStackUnstackMultiLevel.test_unstack_sparse_keyspace  s9    Y**1--66s6JJY**1--66s6JJY**1--66r186LLY**1--66sBX6NNY**1--66t(6KKY**1--==hGG 	
 	
 ll44455 	Cr   c                 z   ddgg dg}g dg dg}t          ||          }t          t          j                            d                              d          |          }|                                }t          |j                  d	k    sJ |	                    |
          }t          j        ||           d S )Nr   r5   r  r  r4  r6   )rD   r6   r:   rD   r   )r   r   r   r   r   r   r#   rI   r9   r"   r$   r%   )r'   r   r>   r  r8   r)   r?   r  s           r   test_unstack_unobserved_keysz7TestStackUnstackMultiLevel.test_unstack_unobserved_keys  s    
 a&,,,'|||,65))ry,,Q//??GGuUUU6>""a''''<88
fb)))))r   c                 H    G d dt           j                  }|                                5 }|                    t           d|           t	          t          j        d          t          j        d          t          j        d          g          }d}t          j	        ||          5  t          j        t          d	          5  |                                 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )
Nc                   (     e Zd Zd fdZddZ xZS )gTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32_warns.<locals>.MockUnstackerreturnNc                 T     t                      j        |i | t          d          )NDon't compute final result.)super__init__	Exception)r'   argsrg  	__class__s      r   r  zpTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32_warns.<locals>.MockUnstacker.__init__  s.      $1&111 =>>>r   c                     d S r   ry  )r'   s    r   _make_selectorszwTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32_warns.<locals>.MockUnstacker._make_selectors  s    r   )r  N)r  r  r  r  r   __classcell__)r  s   @r   MockUnstackerr    sQ        ? ? ? ? ? ?
       r   r"  
_Unstacker)   r6   r$  r:   z$The following operation may generater\   r  )reshape_libr#  contextsetattrr   r   rD  r   r$   rg   r   r   r  r#   )r'   performance_warningmonkeypatchr"  rm  r)   rp   s          r   5test_unstack_number_of_levels_larger_than_int32_warnszPTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32_warns  s   	 	 	 	 	K2 	 	 	   "" 		!aIIk<???$$y''5)9)9:  B 9C+,?sKKK ! !]94QRRR ! !JJLLL! ! ! ! ! ! ! ! ! ! ! ! ! ! !! ! ! ! ! ! ! ! ! ! ! ! ! ! !		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		!sZ   A>D+C?C(C?(C,,C?/C,0C?3D?D	DD	DDDr>   c              #   l   K   | ]/}t          j        t          j        g d |          d          V  0dS )rb   r6   r   N)r   r   r  )r   widths     r   r_  z$TestStackUnstackMultiLevel.<genexpr>	  sW       &
 &
 i4YYYFFqQQQ&
 &
 &
 &
 &
 &
r   r   	stack_levc                 @   t          |g dg dg          }t          |t          d          g          }|ri nd|i} |j        |fd|i|}|j        D ]G}	|j        D ]=}
|j        |	|
f         }|	|
|         f}|
d|z
           }|j        ||f         }||k    sJ >Hd S )	Nr  r  r  rD   )r9   ro   r!  r   r5   )r   r   r;   r"   r8   r9   rn   )r'   r>   r-  r!  r   r9   r)   rg  
df_stackedrowr  r@   
result_row
result_colr?   s                  r   %test_stack_order_with_unsorted_levelsz@TestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels 	  s      F<<<2NOOOweAhhZ888#7&$RXiMMlMfMM
8 	* 	*Cz * *6#s(+ #i.0
 Y/
#
J(>?)))))*	* 	*r   c           
         t          g dg dgt          j        t          d          d          t          j        t          d          d          g          }t          |t          d          t          j        dt          |          z                                dd                    t          fdj
        D                       sJ d S )	N)r{   r   r|   )r|   r{   r   r2   r  rP   rU   )r9   r8   ro   c              3      K   | ]Q}j         D ]G}j        ||f                             d           j        ||d          f|d         f         k    V  HRdS )r   r   r5   N)r9   rn   r"   )r   r0  r  r)   r   s      r   r_  z]TestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels_multi_row.<locals>.<genexpr>*	  s       
 
 z	
 
  F38xxx5593A-Q:OPQ
 
 
 
 
 
 
r   )r   r   r   r;   tiler   r   rI   r   r7  r8   )r'   r   r  r)   s    ` @r   /test_stack_order_with_unsorted_levels_multi_rowzJTestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels_multi_row	  s     #OO___59U1XXq))27588Q+?+?@
 
 
 eAhhRYq3r77{-C-C-K-KAr-R-R
 
 
  
 
 
 
 
 x
 
 
 
 
 	
 	
 
 	
 	
r   c                 D   d}d}t          |g dg dg          }t          |t          d          gg d          }|ri nd	d
i} |j        |fd|i|}t          g dddggg dg dg          }t          g dg dd|          }	t	          j        ||	           d S )N)r   r5   )r5   r   r5   r  r  r  rD   )r5   r   r6   r2   )r9   ro   r8   r!  Tr   r  r   )r5   r5   r   r   r6   r6   r2   r2   )r5   r   r5   r   r5   r   r5   r   r	  )r6   r2   r6   r2   r6   r2   r6   r2   r9  r:   )r   r   r;   r"   r$   r%   )
r'   r   r>   r-  r9   r)   rg  r?   r   r@   s
             r   1test_stack_order_with_unsorted_levels_multi_row_2zLTestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels_multi_row_21	  s   
 "	F<<<2NOOOweAhhZ|||LLL#7&$)II,I&II# LL1a&)+++-E-E-EF
 
 
 ++++++  !
 
 
 	fh/////r   c           	      ~   t          j        d          }t          j        d |D             d |D             g          }t          |j        ddg          }d|j        _        d|i}t          j        |d	
          }ddg|j        _	        |
                    t          |j                  d	
          }|                    ddg|                              ddg          }t          ddgddgddgddgddggt          d          t          j        ddgddg                    }t#          j        ||           d S )NrP   c                     g | ]}d | S )r4   ry  r^  s     r   r   zVTestStackUnstackMultiLevel.test_stack_unstack_unordered_multiindex.<locals>.<listcomp>Q	      )))QQ)))r   c                     g | ]}d | S r  ry  r^  s     r   r   zVTestStackUnstackMultiLevel.test_stack_unstack_unordered_multiindex.<locals>.<listcomp>R	  r=  r   r4   r3   r   r  rF   r5   r5  r  r   a0b0r  r  r  r  a3b3a4b4)r3   rF   )r4   rF   r   r7   )r   r   vstackr   r&   r9   rd   r   rd  rk   r  r  r"   r#   r;   r   rf   r$   r%   )	r'   r   r   ro   r)   second_level_dictmulti_level_dfr?   r@   s	            r   'test_stack_unstack_unordered_multiindexzBTestStackUnstackMultiLevel.test_stack_unstack_unordered_multiindexI	  sp   
 1y))&)))))&)))
 
 tvSz222!
 "I#41===(0'':$##F>+A$B$B#KK7H-LIIQQh
 
 D\D$<$d|dD\R((*Z((0C  
 
 
 	fh/////r   c                     |}d|d<   d|d<   |                     d          }|d         j        t          j        k    sJ |s|d         j        t          j        k    sn	 nJ |d	         j        t          j        k    sJ d S )
Nr   r   r6   r   r  r  )r   r5   r  )r   r5   )r#   rR   r   r   object_)r'   rr  r%  rs  r,   s        r   test_unstack_preserve_typesz6TestStackUnstackMultiLevel.test_unstack_preserve_typesg	  s     >CCKK((	 &"*4444 &	
f#rz111 21   &"*444444r   c                 j   t          j        t          j        d          d          }t          j        d          }t          |gdz  ddggz   |gdz  t          j        d                              d          gz             }t          t          j        d          |          }|                                }|j        d	k    sJ |                    |
          }t          j
        ||                    |j                             t          ddgg|gdz  z   t          j        d                              d          g|gdz  z             }t          t          j        d          |          }|                    d          }|j        d	k    sJ t          |gdz  ddggz   |gdz  z   |gdz  t          j        d                              d          gz   |gdz  z             }t          t          j        d          |          }|                    d          }|j        d	k    sJ d S )N  r6   rw   r   r5   r  r  r:   )rM  r6   r   rD   )r   r6  r   r   r   r
   r#   r!   r"   r$   r=   r  r8   )r'   r   r  r   r8   rr   r?   r*   s           r   !test_unstack_group_index_overflowz<TestStackUnstackMultiLevel.test_unstack_group_index_overflowx	  s%    	#**	#7Q;1a&)'A+1!4!4S!9!9 ::
 
 

 29T??%000|x'''' ,,L,99
q'//!'":":;;; F8ugk)9Q<<&&s++,w{:
 
 

 29T??%0001|x'''' 7Q;1a&)UGaK77Q;")A,,"5"5c":":!;;ugkI
 
 

 29T??%0001|x''''''r   c           	         t          g dg ddgdz  d                              ddg          }d|d	<   t          |j        j                  d
k    sJ |                    d          }|d                             d          |d<   t          g dt          j        dddggt          ddgd          t          j        g dd dg                    }t          j        ||           d S )N)r{   r{   r|   )cacbrQ  r(  r2   )r3   r4   r  r3   r4   r5   is_r6   rR  rP  r   )      $@rT  r   r   rT  r_  r   r{   r|   r   ))r  rP  )r  rQ  rS  )rR  rQ  r   r7   )r   ri   rI   rJ   rK   r#   r  r   rH   r   r   rf   r$   r%   r\  s       r   +test_unstack_with_missing_int_cast_to_floatzFTestStackUnstackMultiLevel.test_unstack_with_missing_int_cast_to_float	  s   $__'''TAX 
 
 )S#J

 	 5	27>""a''''C &} 5 < <Q ? ?}###bfdC%=>c
---*HHHSk  
 
 
 	fh/////r   c                    t          g dg dg dg dd          }|                    g d          }g d}|j                            |d          |_        |j                            |d	          |_        |                    d
          d                                         j        }t          g dg dgg dg dgdd	g          }t          j        ||           d S )Nr   )r2   rD   r5   r6   rW  )L1L2L3rF   )rW  rX  rY  )n1n2n3NrW  )r>   r   rX  rY  )rF   r5   r  )r6   r2   r   r5   r  )	r   ri   r8   
set_levelsr#   r  r   r$   r  )r'   r   
new_levelsr?   r@   s        r   test_unstack_with_level_has_nanz:TestStackUnstackMultiLevel.test_unstack_with_level_has_nan	  s   "ll"ll"ll!\\	 
 
 mm...//---
I((
$(GG	I((
$(GG	T""8,7799?,,,.F.F.FG<<.,
 
 
 	fh/////r   c                    t          t          j        ddg          t          j        g d                    }|                    d|          }|r9t          dgdd	ggg d
g dg          }t          dgddggg d
g dg          }n"t          g d          }t          g d          }t          dt          j        t          j        gt          j        ddgt          j        ddgg||          }t          j	        ||           d S )Nr5   rP   ))r   NN)r   r6   r   )r   r6   r5   )r   r2   r   )r   r2   r5   r   r6   r   r   r_  r   r=  )rU   r   r5   r  r2   )r   N)r   r   r9  )ra  )r   r6   )r   r2   r7   )
r   r   rD  r   rf   r"   r   rH   r$   r%   )r'   r   r)   r?   r8   r9   r@   s          r   $test_stack_nan_in_multiindex_columnsz?TestStackUnstackMultiLevel.test_stack_nan_in_multiindex_columns	  s@   
 HaV*   
 
 
 !,77 	9sS#J&7			:::?VWWWE !q!fiii=TUUUGG55566E77788G2626"RVS#$6c8JK
 
 

 	fh/////r   c                    t          j        dgdz  dgdz  z   t          j        t	          d                    t          j        t	          d                    g          }t          t          j        d                              dd          |          }|	                    d	dg|
          }|rt          dt          j
        gd	t          j
        gt          j
        dgt          j
        dgdt          j
        gdt          j
        gt          j
        dgt          j
        dggddgt          j        dgdz  d	gdz  z   t          j        t	          d                    t          j        t	          d                    g                    }nt          dt          j
        gt          j
        dgd	t          j
        gt          j
        dgdt          j
        gt          j
        dgdt          j
        gt          j
        dggddgt          j        dgdz  d	gdz  z   t          j        t	          d                    t          j        t	          d                    g                    }t          j        ||d           d S )Nr{   r6   r|   r  ccddrw   rD   r   r5   r   r   r2   rP   ru   rv   ababababccddccddr   aabbaabbcdcdcdcdF)check_index_type)r   r  r   r   r~   r   r   r   r   r"   rH   r$   r%   )r'   r   r  r)   r?   r@   s         r   "test_multi_level_stack_categoricalz=TestStackUnstackMultiLevel.test_multi_level_stack_categorical	  s@   
 %	SEAI%tF||,,tF||,,
 
 ry||++Aq114@@@1a&|<< )	 KKVQKVQKKKVQKVQK	 c
 ,a1#')tJ'7'788tJ'7'788   HH* !KVQKKVQKKVQKKVQK	 c
 ,a1#')tJ'7'788tJ'7'788   H( 	fhGGGGGGr   c                    t          t          j        d                              dd          t	          j        dt          j        fdgddg          t          dd	gd
          t          j                  }|	                    |          }|r+t	          dd	gt          j        dggg dg dgd
dg          }n4t	          j        dt          j        fdd	t          j        fdgd
dg          }t          dt          j        gt          j        d	gdt          j        gt          j        dggt          ddgd          |          }t          j        ||           d S )NrD   r6   r{   r}   r  r  r   r   r5   Numr   r#  r   r4   r  r  r  )r   r4   )r5   r4   r_  r"  rC   r|   r   )r   r   r   r   r   rf   rH   r   r   r"   r$   r%   )r'   r   df_nanr?   r8   r@   s         r   test_stack_nan_levelz/TestStackUnstackMultiLevel.test_stack_nan_level,
  sy   
 IaLL  A&&*rv
+GW3E   AU+++*
 
 
 <88 		A.#||\\\2g&  EE *RVhBFX>ugFV  E 26]RVQK#rvF3*7333
 
 

 	fh/////r   c                    t          j        dgddgg          }t          dt          j        ddg          i|          }|                                }t          t          j        dgddg          t          j        dgddg          d	dg          }t          j        d
dg          |_        t          j	        ||           d S )Nr{   r   r5   r   r3   r4   r:   r   r9  )r   r   )r   r5   )
r   r<   r   r   r   r#   rf   r9   r$   r%   r   s        r    test_unstack_categorical_columnsz;TestStackUnstackMultiLevel.test_unstack_categorical_columnsK
  s    %uq!fo66r~sCj99:#FFF>3%S#J???>3%S#J???  %
 
 
 &1:z2JKK
fh/////r   c                 R   ddg}ddg}g d}t          j        |||gg d          }t          t          t	          |                              }t          ||dg	          }|                    d
dg          }|j                            d          |_        d|j	        d d df<   |
                    d
dg|                                          }|                    d          
                    d
dg|                                          }	t          j        ||	           d S )NITAFRAA1A2)CRTDBTNET)PAEVARTYPr   VALUE)ro   r8   r9   rz  r{  r   i'  )A0rx  r   r5   r5  )r   r<   r~   r;   rI   r   r#   r9   rP  rn   r"   r  r$   r=   )
r'   r   ry  rz  r{  r   VDFr?   r@   s
             r   test_stack_unsortedz.TestStackUnstackMultiLevel.test_stack_unsortedZ
  s'   
 enTl###$c3_<Q<Q<QRRRs2ww  AR';;;ZZ''Z))!,,
#'qqq- 5%.|DDOOQQMMqM!!UE5>U==Z\\ 	
 	vx00000r   c                    t          j        ddgddggddg          }t          g dd	
          }t          j        g dg dg dg          }t          |||t          j                              }|                    d|          }|	                    t          j
                                      d|          	                    t          j                              }t          j        ||           ||j        d                  	                    t          j                              ||j        d         <   |                    d|          }t          t          j        g dt          j                              t          j        g dt          j                              dt          j        ||j        d         g                    }d|j        _        t          j        ||           d S )N5451154515r  t_meanstationelementr   r   r  r   )r     r(     )r(  r  r      )i1     rm  r  r#  r   r   )r   rT  rT  g      "@g     s@g     [@rQ   )r  r  r  r  r  r  )r  r  r:   )r   r<   r   r   r  r   r   
Int64Dtyper"   rl   rm   r$   r%   r9   Float64Dtyper>   rd   )r'   r   r9   r8   arrr)   r?   r@   s           r   test_stack_nullable_dtypez4TestStackUnstackMultiLevel.test_stack_nullable_dtypes
  s   
 )w#x1)Y9O
 
 
 iiif---h***,=,=,=?S?S?STUUsG5PPP),?? IIbhU9<U88VBMOO$$ 	
 	fh/// rz!}-44R_5F5FGG2:a=),??X999ARAR   (222"-//  	  )5'.2C*DEE

 

 

 !*
fh/////r   c           	      P   ddgddgddgg}t          j        |d          }t          dddgi|	          }|                    d
          }t          dgdggt          j        dgd d
g          t          j        ddgddg                    }t          j        ||           d S )Nr3   r5   r6   redblue)rF   r   rG   r   rm  r:   rF   )rm  r3   )r5   r  )r6   r  r   rG   r   )r   r  r   r#   rf   r$   r%   )r'   arraysr   r)   r?   r@   s         r   test_unstack_mixed_level_namesz9TestStackUnstackMultiLevel.test_unstack_mixed_level_names
  s    *q!fufo6$V=AAAaV}C000CS1#J*J<c{KKK(*k)B1c(SSS
 
 

 	fh/////r   )9r  r  r  rt  r   r  r  r  r  r  r  r~   r   r   r6  r   r   rf   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  slowr*  r   chainfrom_iterabler;   r3  r7  r:  rH  rK  rN  rU  r_  rb  rj  rn  rp  r  r  r  ry  r   r   rp  rp    sv       ' ' ' [? 0//1O1O1OP>>>(((	 *))+C+C+CD666"""	 *))+F+F+FG666"""		
 .0 0/ .0(	3 	3 	3 [C J* J* J*X [C  [ V
 #J7"27929Q<<#6#6q#9#91==wrwyyyRS?T?TU   '
&'OPP
 #JA?		! 3 3A 6 6::!	)))YYY77			1--  
	
 .* */  4*& [C * * *2 [C 2 2 2 [C Y Y Y  [C 
: 
: 
: [C  [X';<<8 8 =< 8&0 0 0 [C 
1 
1 
1 [C  M  M  MD [C 	E 	E 	E [C A A AC3 C3 C3J-1 -1 -1^ [C & & &6 [C = = =      * [C * * * [! ! !4 [C  [%% &
 &
&
 &
 &
 	
 	
  [[%%((33* * 43  *" [C 
 
 
$ [C 0 0 0* [C 0 0 065 5 5" [C #( #( #(J0 0 060 0 00 [C 0 0 08 [C 5H 5H 5Hn [C 0 0 080 0 0 [C 1 1 1, [C #0 #0 #0J0 0 0 0 0r   rp  c           	         t          g dg dg dgg d          }|                    |           }t          g dt          t	          d          g dgg d	g d
g                    }t          j        ||           d S )Nr   )rD   rP   ru   )rv   rw   r   )r  r  r  r   r   )	r5   r6   r2   rD   rP   ru   rv   rw   r   r2   )	r   r   r   r5   r5   r5   r6   r6   r6   )	r   r5   r6   r   r5   r6   r   r5   r6   r  r:   )r   r"   r
   r   r;   r$   r=   )r   r)   r?   r@   s       r   test_stack_tuple_columnsr  
  s     
	IIIyyy)3Q3Q3Q
 
 
B XX<X00F###!HH<<<=...0K0K0KL
 
 
  H 68,,,,,r   zdtype, na_valuer  test_multiindexc                    |r)t          j        dt          |g|           gz            }nt          |g|           }t          ddgi|          }|                                }|rFt          j        t          |g|           t          |g|           t          dg          g          }n4t          j        t          |g|           t          dg          g          }t          d|          }t          j        ||           d S )Nr6   rQ   r3   r5   r:   )r   r  r   r   r"   r
   r$   r=   )rR   r"  r  r8   r)   r?   r   r@   s           r   test_stack_preserves_nar  
  s!     /&qE8*E,J,J,J+K'KLLxj...	C!:U	+	+	+BXXZZF 
#/xj...xj...se
 
 $/xj...se
 
 a~...H68,,,,,r   )3r   r   r  numpyr   r   pandas._libsr   pandas.errorsr   pandasr   r   r   r   r	   r
   r   r   pandas._testing_testingr$   pandas.core.reshaper   r%  fixturer   r   r  r  r'  rH   r0  r2  r7  r  r?  r  rC  rF  rH  rJ  rU  rY  re  rh  rn  rp  r  r  r  ry  r   r   <module>r     sb             				            ( ( ( ( ( (                            6 6 6 6 6 6 e}%%%  &%Q0 Q0 Q0 Q0 Q0 Q0 Q0 Q0h( 9i"8997, 7, :97,t  OOrvlLI	

 OOGRV,lLI	

 OO<'26):LI	

 OO<7HI	
$ 	=<<)   ,, ,- ,,, , ,0, , ,0 WXX	- 	- YX	- WXXD%#@AA1 1 BA YX1 WXXD%#@AA0 0 BA YX0" WXXD%#@AAay110 0 21 BA YX0") ) ), , ,> WXX, , YX,) ) )* WXX#, #, YX#,L WXX- - YX-$[0 [0 [0 [0 [0 [0 [0 [0|  WXX- - YX-  	BF	BF	BE	"%	  *T5M::- - ;: - - -r   