
    o[weGf                       d dl m Z  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 d Z!d Z"d Z#ej                            ddd	e	j$        g          d             Z%ej                            ddd	e	j$        g          ej                            ddd g          d                         Z&d Z'd Z(d Z)d Z*d Z+d Z, G d d           Z-d! Z.dS )"    )datetime)StringION)lib)PerformanceWarning)	DataFrameIndex
MultiIndexPeriodSeries	Timedelta
date_range)reshapeTF)paramsc                     | j         S N)param)requests    Elib/python3.11/site-packages/pandas/tests/frame/test_stack_unstack.pyfuture_stackr      s
    =    c                   z	   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zej                            dd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d Zd Zd Zd  Z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d* Z d+ Z!ej                            d,d-g d.ej"        d/d0gej"        d%d1gfd1g d2ej"        d%d1gej"        d/d0gff          d3             Z#ej                            d4d5dg e$d          g          d6             Z%d7 Z&d8 Z'd9 Z(ej                            d:d;d<g          ej                            d= e) e*d0                              d>                         Z+ej                            d: e,j-        g d?                    ej                            d= e) e*d                              ej                            d@dAdBg          dC                                     Z.dD Z/dE Z0dF Z1dG Z2dH Z3ej                            dIg dJg dKg dLg dMg dNg dOd-d1gd-d0gd-dgd-gd0gdgg dPg dQg dRg dSg dTg dUd1d-gd0d-gdd-gg          ej                            dVdWd-d1d-d1gd1d-gf          dX                         Z4dY Z5ej                            dZd[d\g          d]             Z6ej                            dZd[d\g          ej                            d^ e)d_          g d`f e)da          g dbfg          dc                         Z7dd Z8ej                            deg df ej9        d1d0gd/dggg          fg dh ej9        d1d0gd/dggg          fg dK ej9        d1d0gd/dggg          fg          di             Z:ej                            djd1d0gdkdlgdmdndnfd1d0gdodpgdmdqdrfg          ds             Z;ej                            dVd-d1g          dt             Z<ej                            dVd-dug          dv             Z=dS )wTestDataFrameReshapec                    |                                 }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_level2   s`   ((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                 B   t          ddt          j        gddt          j        gd          }|dg         }|d         |d<   |s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'   using_array_managerr)   df2resr@   s         r   test_unstack_not_consolidatedz2TestDataFrameReshape.test_unstack_not_consolidatedI   s    aBF^3262BCCDD#ic7C" 	-sx''1,,,,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          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   rV   rQ   )r6   rD   rV   r3   r4   rF   rG   rU   r8   rS         ?)r5   r\   rQ   )r6   rD   r\   r3   r3   r4   )jkr^   r   r5   r6   )rF   rG   rU   wrF   rG   r   )ra   r4   r^   )r   r   r6   )r8   namer   ra   )r   r   int16r	   from_tuplesr8   r#   r   r$   r%   float	set_indexr=   r"   reorder_levelsnamesastypeint64loc)
r'   r   datar?   r@   r)   r,   keyr*   ss
             r   test_unstack_fillz&TestDataFrameReshape.test_unstack_fillU   s5   
 lll"(333+<<<
 

 ,,**:::..oooRX
 
 
 	fh/// --++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/////r   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          }g dg dg dg}t          |t          d          t                    }t	          j        g d          |_        t          j
        ||           d S )Nr5   r6   r2   rD   rQ            AB)r9   rS   rT   rV   rW   )r5   r2   r6   rD   )rV   rQ   rV   rq   )rr   rV   rs   rV   xyzr[   )Ar3   )rw   r4   )Br3   rx   r4   rw   rx   r\   )r\   rQ   r\   rq   )rr   r\   rs   r\   )r   listr   int32r	   rd   r8   r#   r9   r$   r%   ri   rc   float64re   )r'   rowsr)   r?   r@   s        r   test_unstack_fill_framez,TestDataFrameReshape.test_unstack_fill_frame   s   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/// s++...0@0@0@ATeEBBB%1<<<
 
 	fh/////r   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   periodsrT   r   r2   r5   r6   rY   rZ   r:   rW   )r   valuesr   r	   rd   r8   r#   r   pdNaTr$   r%   )r'   dvrl   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   rT   r   r2   r5   r6   rY   rZ   r:   rW   )r;   r   r	   rd   r8   r#   r   r   r   r$   r%   )r'   tdrl   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-04rT   r   r2   r5   r6   rY   rZ   r:   rW   )	r
   r   r	   rd   r8   r#   r   r$   r%   )r'   r   rl   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           	         t          g dd          }t          j        g d          |_        |                                }t          t          j        t          d          t          d                    t          j        t          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   categoryrR   rT   axaabc
categoriesbcxrY   ru   r:   z9Cannot setitem on a Categorical with a new category \(d\)matchdrW   r   acabcc)r   r	   rd   r8   r#   r   r   Categoricalrz   r$   r%   pytestraises	TypeError)r'   rl   r?   r@   msgs        r   #test_unstack_fill_frame_categoricalz8TestDataFrameReshape.test_unstack_fill_frame_categorical   s   ****===+<<<
 


 ^DKKDKKHHH^DKKDKKHHH  u++
 
 
 	fh/// K]9C000 	) 	)LLCL(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) --^DKKDKKHHH^DKKDKKHHH  u++
 
 
 	fh/////s   2D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   rv   ry   rh   r5   	   r6   r   er:   )r5   r5   r5   r6   r6   r6   )r   r3   r   r4   )r   r   r   r3   r   r4   )r   r   rb   r9   r8   )r	   r<   r   r#   rd   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_columnsrv   )r5   r5   r6   r6   ))r5   r2   )r5   rD   r6   r2   )r6   rD   rx   Cr   )r   r   r   r   N)rv   rx   )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   )Nrv   rx   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   )rv   rx   r   r   rs   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_categoriesrw   rx   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_compareo  s?    [M22JK00J!*j99999r   r   r8   r   r   r   )r   rx   r   rx   r   rw   )	r   r   ri   r   randomdefault_rngr   	Timestamprf   )r'   r)   r   df1rn   s        r   test_unstack_preserve_dtypesz1TestDataFrameReshape.test_unstack_preserve_dtypes]  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   rV   T)inplace)r	   rd   rz   	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)rw   catlong)rx   r   r   )rw   dogshort)rx   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	   rd   r   r   r   r   r   r"   r   r9   rh   r$   r%   r   r   
ValueError)	r'   r   r9   r)   animal_hair_stackedexp_hair_stackedrM   r   df3s	            r   test_stack_mixed_levelsz,TestDataFrameReshape.test_stack_mixed_levels  sF   (   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   r`   r5   Fr   r   )r6   r   r5   )r	   rd   r   r   r   r   r   r"   r   r9   rh   r$   r%   )	r'   r   r9   r)   exp_animal_stackedr   r   rM   r   s	            r   test_stack_int_level_namesz/TestDataFrameReshape.test_stack_int_level_names  sq   (   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   rR   )
r   r	   from_arraysr#   r   arrayrH   objectr$   r%   )r'   r)   rsxps       r   test_unstack_boolz&TestDataFrameReshape.test_unstack_bool  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>   codesrh   r   r:   r5   r6   r   r  r  rR   r  r   r7   )r	   r   r#   r"   r   r   r  rH   r|   r   r$   r%   )r'   r   mirn   r?   expected_mir@   s          r   test_unstack_level_bindingz/TestDataFrameReshape.test_unstack_level_binding(  sI   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(   rl   undor?   midxr@   old_data_s	            r   test_unstack_to_seriesz+TestDataFrameReshape.test_unstack_to_seriesB  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        }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 S )N)r5   r5   r2   rD   r5   r6   r2   rD   )r6   r5   r2   rD   )r6   r6   r2   rD   ABCDr   rj   rD   r:   rw   rx   )r   r   r   r   )r5   r6   r5   r6   )Nrx   r   rC   r   r|   r6   r   r   r  )r   rz   dtypesr   r   rS   r$   r=   rf   r#   r	   r  )r'   r}   r)   r?   r@   rM   r   s          r   test_unstack_dtypesz(TestDataFrameReshape.test_unstack_dtypes]  sm   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#Xi  !A%(););(<q(@@(%%%|||4K  
 
 
 	vx00000r   zc, drQ   f8rR   
   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   rQ   r   r   )rw   r   r   rx   r2   T)deeprw   rx   r   rj   r   )r   r3   )r2   r6   )
r   r   ilocr   rf   ri   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 )NrY   )r   r   c1r   r5   r6   r:   z5The name c1 occurs multiple times, use a level numberr   r   )	r	   rd   r   r   r   r   r#   r&   r"   )r'   r   r   r)   r   s        r   #test_unstack_non_unique_index_namesz8TestDataFrameReshape.test_unstack_non_unique_index_names  sJ   $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        ddgg dg          }t          g d	gdg|
          }t	          j        ||           |j        j        d         |j        d         k                                    sJ g dg 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   )rw   rx   r   r   rV   r5   r   r2   r:   rw   rx   r   )r5   r5   r5   r   r   r   r7   )r   r5   rr   r   r5   r6   r2   r  r   r6   r   r6   rD   r6   axisr   )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///)Aq6???*CDD0001#PPP
fh///%a(CJqM9>>@@@@@ ))\\\*|||,''	!$$Q**r~ueai&899EEENEAIuqy1}5A>>>
 
 
 	fh///%a(CJqM9>>@@@@@@@r   z"level, idces, col_level, idx_levelr   )      rq   r   r6   rQ   rs      r3   r6   r5   )rs   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        ddg|g          }t          |                    dd          ||          }t          j
        |
|           d S )N)r3   r6   r   )r5   r2   rQ   rr   )r   rV   r5   r5   )r   r6   rV   r6   rs   rD   r6   r:   r      r   r5   r2   rq   r7   )r	   r   r   r   r   r#   zerosrH   r<   r$   r%   )r'   r   idces	col_level	idx_levelr>   r  r   rl   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   rH  rw   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   IIr1  r   F)droprK  r   r   r   )r   rf   rk   slicer#   r)  r	   r<   r9   r8   	droplevelr$   r%   )r'   rH  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   r.  r   )r   r   r5   r   r   r   r5   )i1i2i3i4i5i6i7r   )rU  rV  rW  rX  rY  rZ  )r.  rU  rV  rW  rX  rY  rZ  rT  r   )r   r	   rd   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        rx   r   r   r.  c2r   )r&     r   )r&  r`  (   rT  rU  rV  r   rU  rT  r   )r   r	   rd   r#   r9   rh   )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   rV   r   r   )r   r   f)m1P3   )rh  A5o   )m2ri  rj  )rm  rk  rl  rb  r   r   rV  rU  )r   r	   rd   r#   r$   r%   r[  s       r   &test_unstack_multi_level_rows_and_colsz;TestDataFrameReshape.test_unstack_multi_level_rows_and_cols  s    VaVb"XBx0*OOO___+MNN(%%%%%%%%%%%%	 )((  
 
 
 T4L))::tf%%--tf55
fh/////r   r   jimjoe)rq  rp  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>.cast+      3JJbbCG>>!r   r3   r4   r   )ra   rF   rG   rU   )za.wzb.xz .yzd.z)rp  rq  jolierp  rq  r~  rA  c                 P    t          | t                    rt          |           n| gS r   r  tuplerz   r3   s    r   <lambda>z>TestDataFrameReshape.test_unstack_nan_index1.<locals>.<lambda>>  !    z!U';';DDGGG! r   .)r   r   rH   rf   r#   r&   r$   r%   rz   notnar   sumrI   nonzerozipsortedr)  splitr8   r9   map)r'   r   rr  r|  r)   r+  r*  r  udfmk_listr}   rH  r   r^   s                 r   test_unstack_nan_index1z,TestDataFrameReshape.test_unstack_nan_index1'  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 ru  rx  ry  s     r   r|  zATestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.castJ  r}  r   r   r2   rQ   r3   r6   r   r   r4   rG   ra   rU   rD   rF   )C   '   5   H   9   P      rB  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>w  s    sxxD!55 r   r5   r4  c           	      f    d                     t          | j        d d d                             S )Nr  rV   )r  r  r)  r  s    r   r  zETestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.<lambda>x  s)    sxxD!&2,(?(?@@ r   r  r  rA  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   applyrf   rz   r#   r  r   r  rI   r  r  r  r)  r  r8   r9   r  )r'   r   rr  r  r)   r  r  r  r}   rH  r   r^   r+  r*  r|  s                 @r   test_unstack_nan_index_repeatsz3TestDataFrameReshape.test_unstack_nan_index_repeatsF  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aaaabbbbrs   r1  rx   re   r2   r5   rw   r   r2   r5   r6   rD   rQ   rq   rr   r   r   r3   r4   r  r   )r6   r5   )r   rz   r;   ri   r   rH   r)  rf   r#   r  r  r   r	   r$   r%   )r'   r)   r+  valsr   rH  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           	         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          |||          }|r8|j        g d         }||                             |d         j                  ||<   t!          j        ||           d S )N
aaaaabbbbbr   rQ   r   r6   r&  r1  r  rw   rx   r2   r   r5   rD   rq   rr   rs   r   r3   r4   r   r   )r   r   r   r   r   r   )rV   r   r5   r6   r2   rD   r  r   )r5   r6   r2   rQ   )r   rz   r   tolistr   r   rH   r)  rf   r#   r  r   r	   r9   ri   rS   r$   r%   )r'   rL   r)   r+  r  r   rH  r*  s           r   test_unstack_nan_index3z,TestDataFrameReshape.test_unstack_nan_index3  sy   ,'' 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 	<=.D+,,RW];;E$K
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   rV   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   rf   r#   r	   r$   r%   rk   )r'   r  r)   r+  r   rH  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-01rq   r   )r   freqd   r6   r&  )r  r  rp  rq  r  z
2014-02-02r  )r5   r  )r2   r  )r5   r  )rD   r  r  ro  r  )r   r   r   r   r   r   r   roundr   r   rH   rk   rf   r#   r  r   r  rI   iterrows)r'   r)   r+  r  r  r  rm   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                 R   t          ddd          }t          g dt          j        |ddfg                    }|                    |          }t          j        dd	g          }t          j        |dfg          }t          g d||
          }t          j        ||           d S )Ni  r5   r!  rw   rx   r   r   r2  )rx   r7   )r   r   r	   rd   r"   r<   r$   r%   )r'   r   tr)   r?   eidxecolsr@   s           r   %test_stack_datetime_column_multiIndexz:TestDataFrameReshape.test_stack_datetime_column_multiIndex  s    T1a  |||Z-Cac]O-T-TUUU|44&f'=>>&Cz22\\\uEEE
fh/////r   multiindex_columnsr  r2  )r   r5   r6   rD   r`   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   rV   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)rx   rF   )rx   rU   )rw   rG   )r   rF   )r   uUpperLowerr   r2   r   )r   dropnar   T)r   
no_defaultr	   rd   r   r   r   rI   r   r"   r  intr   r$   r=   r%   r9   to_numpyrh   )
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           	      N   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          ddg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   rq   r6   r2   )r   r5   r2   r   Fr  r   r   r5   rQ   rD   )r  rF   rG   rU   r  )r5   r2   r5   r2   r  rx   r   r   r7   )r	   rd   r   r   r   r   r   r  r"   rH   r   ri   r#  r)  r$   r%   )r'   r   r  r)   r  r?   r@   s          r   test_stack_full_multiIndexz/TestDataFrameReshape.test_stack_full_multiIndexZ  sI   $0HHHG$
 
 
 ry||++Aq11?999;UVVV*>lCCVa[1a&1bf+6A 4 4 45#||\\\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yxzru   r   r  )r&  r=  r>  r   r   r:   )r   CategoricalIndexrz   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_dtypeo  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,dataru   )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        dg|
|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  labelsrl   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$!81#vu9M!N!N
 
 
 	vx00000r   c                 *   t          j        g d          }t          ||d          }|                    |          }t	          j        g dddgg          }t          t          j        g d          |          }t          j        ||           d S )	N)r3   r3   r4   r   rw   rx   r   r2  rw   rx   )r3   r3   r3   r3   r4   r4   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'Sz(BCCNCCCDDE
 
 
 	vx00000r   zindex, columnsr  r4   )r   r   r6   r2   c                    t          ||                              d          }|                    |          }t          j        |j                                                  }t          |                                ||j                  }t          j	        ||           t          j        |j        j                  }t          j        |j                  }	t          j        ||	           d S )Nr7   r5   r   )r   fillnar"   r	   rd   r8   r  r9   r$   r%   r   asarrayr  assert_numpy_array_equal)
r'   r8   r9   r   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     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 )NrR   )rw   r5   )rw   r6   r   )r   r   r"   ri   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)rw   r   r  )rx   r5   r3   r4   r   )r   r5   Nr  rR   r]   r  r:   rA  r   r
  r6   )r	   rd   r   r   r  r   r#   ri   r  r  NAr   rw   rS   rx   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        dg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 )Nr   r   r   r   r  r   r6   r5   r2   rx   rw   r7   r   )r2   r5   r6   r   ))r   rw   )r   rx   )r   rw   )r   rx   r   r4  )r5  r   )r	   r<   r   r9   rb   rd   r8   r#   	swaplevel
sort_indexr$   r%   )r'   r   r  r)   r@   r?   s         r    test_unstack_swaplevel_sortlevelz5TestDataFrameReshape.test_unstack_swaplevel_sortlevel  s     $qcC:%6uenMMMAA'rC:FFF
\\N*@@@PU  
 
 
 $''Q'//:::OO
fh/////r   )>__name__
__module____qualname__r0   rA   rO   ro   r~   r   r   r   r   r   r   markparametrizer	   rd   r   r   r   r   r   r  r
  r  r  r$  r   rC  r   r,  r/  r:  rH   rI  rN  rR  r\  rc  rn  rz   r;   r  r   permutationsr  r  r  r  r  r  r  r  r  r  r  r<   r  r  r  r  rx  r   r   r   r      sZ       > > >$0 0 0.
. 
. 
.,0 ,0 ,0\"0 "0 "0H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
 
 
<6
 6
 6
p;
 ;
 ;
z& & &0 0 04. . .6*1 *1 *1X [RXa[[("(1++&RYq%%%yryBd'C'C'CD	
 + + +.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+ + +8'5 '5 '5R/ / /.	0 	0 	0 [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 64B0 0 0* [Y661 1 761 [Y66[T%[[2223T%[[2223	
 1 1  761&	1 	1 	1 [\\2:2QFS#J3GHHI\\2:2QFS#J3GHHI\\2:2QFS#J3GHHI	
 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   rS   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t          j        gt          j        dgdt          j        gt          j        dgg|t          j        g d          |          }t          j        ||           |                    ddgd          }| t
          u rt          j        ddg          }nt          j        ddg          }t          ddgddggddg||          }t          j        ||           d S )N))r  rU   r4   )r  rG   r3   )r  rU   r4   )r  rG   r3   r   r   r[   rV   F)r   sortr   r4   )r   r3   r4   r3          @rC   r   ))r  rU   )r  rG   )r  rU   )r  rG   r9   r8   rS   r5   r6   )r   rU   r4   )r   rG   r3   )rU   r4   )rG   r3   r  r  )r8   r9   rS   )	r	   rd   r   r   r#   r   rH   r$   r%   )frame_or_seriesrS   r8   objr?   r   r@   s          r   test_unstack_sort_falser     s    "TTT E /")C--U%
H
H
HC[[r[..F)##%18X2FGG:
rvRV}rvsmD $DDD
 
   H &(+++[[1vE[22F)##%1=-2PQQ%1:z2JKK
sc3Z en 	  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          j
        ||           |                     d          }t          g dg ddt          d	          
          }t          j
        ||           d S )Nr   r  rR   rT   r3   r4   r   rY   ru   r:   r   rW   )r3   r   r3   )r4   r   r   )r   r	   rd   r8   r#   r   r   rH   rz   r$   r%   )rl   r?   r@   s      r   test_unstack_fill_frame_objectr"     s    &&&h777D'888 DJ
 \\^^FBFC S"&'9::$u++  H &(+++ \\S\))FooOOO44DKK  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   r&  r   r5   r  r7   )	r   r   r   rf   r#   r   r	   r$   r%   )r)   r?   r@   s      r   "test_unstack_timezone_aware_valuesr'  6  s   	,'HUSSST		
 	
 -,,
 
 
B \\3*%%--//F
,8U
C
C
CS	IJSE$$$ #&.q6Aq6"+
 
 
  H &(+++++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endr%  rw   r   r:   r   r`   r   r   r   r  )r   r   r"   r   r	   r$   r=   )r   tsr)   r?   r@   s        r    test_stack_timezone_aware_valuesr/  N  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                 P   t          j        g t           j                  t          j        g t           j                  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 )NrR   r  )rS   r8   dropna must be unspecifiedr   r  )r   r  rj   r   r|   r	   r   r  r   r   r   r   r"   r$   r=   )r  r   r>   r@   r?   s        r   test_stack_empty_framer2  Z  sg    hr***BHRrx,H,H,HIF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   0CCCrX   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 )Nr1  r   rR   r  rW   )r   r  r   r   r   r   r   rj   r"   r#   r$   r%   )r  rX   r   r?   r@   s        r   test_stack_unstack_empty_framer4  i  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   rR   )r   r   r   r   r   rj   r#   )r   s    r    test_unstack_single_index_seriesr6  |  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      #@rs   FTr   femalemale)rb   scoreemployedkidsgender)rb   r>  r?  r@  r@  rW   r>  r?  )r:  r^  r^  r^  )r^  r^  r^  g       @rb   r   ))r=  r;  Fr   )r=  r;  Tr   )r=  r<  Fr   )r=  r<  Tr   )Nr@  r>  r?  r   r7   )r   rf   r#   r   r	   rd   r$   r%   )r)   r@   r?   s      r   test_unstacking_multi_index_dfrA    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                 D   t          j        ddgddg          }t          g dg|          }|                    d|           }t	          d	d
gd          }t          j        ddgd dg          }t          ddgddgg||          }t          j        ||           d S )NrE   )rG   rU   r3   r   r5   r5   r5   r5   r   r   r   rG   rU   r   )r   rF   )r   rG   r5   r7   )r	   r<   r   r"   r   rd   r$   r%   )r   r9   r)   r?   new_columnsr  r@   s          r   2test_stack_positional_level_duplicate_column_namesrE    s    %z:&>sCjQQQG	LLL>7	3	3	3BXXalX33Fc
---K&(';D#;OOOI1a&1a&)KPPPH&(+++++r   c                 R   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|          | s%t          d j        j        D                       sJ                                 }t          j        fdt          d	          D             t          d	          d
          }t!          j        ||           d S )NrQ   r1  r6   r?  r2  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>  s*      HHAqz//HHHHHHr   c                 D    g | ]}|                                          S rx  )r#   )r   nr)   s     r   r   z6test_unstack_non_slice_like_blocks.<locals>.<listcomp>  s%    <<<a"Q%--//<<<r   rD   r5   )keysr5  )r	   r<   r;   r   r   r   r   r   ri   rj   anyrJ   rK   r#   r   concatr$   r%   )rL   r  rN   r@   r)   s       @r   "test_unstack_non_slice_like_blocksrQ    sk    
	 %((OOO!<	=	=B	y$$Q''77;;y$$Q''77;;BB28LLy$$Q''77;;y$$Q''77;;		
 	
 
 
 
B  IHHHHHHHHHH
**,,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   rx   rw   rF   rG   r  r  r  r   r  Fr   r   r   rC   r  r   r   rE   )r   r   r5   r5   r6   r6   )rx   rw   rx   rw   rx   rw   r:   )r   rC   r  r   rC   )r  r   rC   r   r   )r   r   r5   r5   r6   )rx   rw   rx   rw   rx   )rx   rx   rw   rw   )rF   rG   rF   rG   rx  )r   rH   r   r	   r"   r  r$   r%   )r   rl   r)   kwargsr?   r@   s         r   test_stack_sort_falserT    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   rV  rW  )r   rX  rY  )r   rV  rW  )r   rX  rY  )r   r  rC   r   r:   )r	   rd   r   r"   r   r$   r=   )r   r   r)   rS  r?   r   r@   s          r   !test_stack_sort_false_multi_levelrZ    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d Z	ej                            d e
d          g 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          g 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d! Zd" Zd# Zd$ Zej                            d%d&d'g          d(             Zd) Zd* Zd+ Zd, Zd- Zd. Zd/ Zd0 Zd1 Zd2 Z d3 Z!d4 Z"ej        j#        d5             Z$ej                            d6e%j&        '                    d7 d8D                                 ej                            d9 e(d                    ej                            d:d;d<g          d=                                     Z)d> Z*d? Z+d@ Z,dA Z-dB Z.dC Z/dD Z0dE Z1dF Z2dG Z3dH Z4dI Z5dJ Z6dK Z7dS )LTestStackUnstackMultiLevelc                    |}|                                 }|                                  |                    t                                                      |                    t          j                                                    d S r   )r#   ri   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   NNrb  N)ix1ix2col1col2col3col4r6   )NNrb  N)r5   r5   NNrb  )r6   r6   NNrb  )rc  rd  re  rf  rg  )NNrb  )r6   NNNrb  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   rc  rd  r5   r6   r   r   r   )	r   rf   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   r6  r5  how)r	   rd   r   r   r   r   r   r#   r  r$   r%   )r'   r8   rn   r,   r@   s        r   &test_unstack_multiple_no_empty_columnszATestStackUnstackMultiLevel.test_unstack_multiple_no_empty_columns6  s    &HHH
 
 29((++;;A>>eLLLIIq!f%%	###66
i22222r   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   r6  rr  r6   rA  r   rV   r5   r4  r2   r   )r#   r"   r  r$   r%   r  r  rk   r=   reindexr8   assert_equal)r'   r_  r   r`  r,   	restackedunlexsortedr?   r@   r*   ymd_stackeds              r   
test_stackz%TestStackUnstackMultiLevel.test_stackA  sP   = 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, columns, exp_idxabab)r  r  r  r3   r4   r  r  r2   )r   r5   r   rD   r  )r3   r6   r4   r5   r3   r5   )r4   r6   r5   )r5   r   r5   )r2   rq   r2   c                    t          t          j        d                              d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   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   r9   exp_idxr   r)   r   r?   r@   liris              r   test_stack_duplicate_indexz5TestStackUnstackMultiLevel.test_stack_duplicate_index  sS   6 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                 &   d}t          j        t          |                                        g d          }|                    d          }|                    |          }|r|                    d          }t          j        ||           d S )Na  day,time,smoker,sum,len
Fri,Dinner,No,8.25,3.
Fri,Dinner,Yes,27.03,9
Fri,Lunch,No,3.0,1
Fri,Lunch,Yes,13.68,6
Sat,Dinner,No,139.63,45
Sat,Dinner,Yes,120.77,42
Sun,Dinner,No,180.57,57
Sun,Dinner,Yes,66.82,19
Thu,Dinner,No,3.0,1
Thu,Lunch,No,117.32,44
Thu,Lunch,Yes,51.51,17)daytimesmokerr6   r   r6  ru  )	r   read_csvr   rf   r#   r"   r  r$   r%   )r'   r   rl   r)   r?   reconss         r   test_unstack_odd_failurez3TestStackUnstackMultiLevel.test_unstack_odd_failure  s     [$((223L3L3LMM 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   r5  r   Fr   r   )	r&   r  r"   r$   r=   rb   rS   r   r|   )r'    multiindex_dataframe_random_datar   framer)   r*   r?   s          r   test_stack_mixed_dtypez1TestStackUnstackMultiLevel.test_stack_mixed_dtype  s    0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=   rv  r8   ri   re   )r'   r   r)   r?   r,   rx  s         r   test_unstack_bugz+TestStackUnstackMultiLevel.test_unstack_bug  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   rb   r9   rh   r"   )r'   r  r   r  r,   rx  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  )rk   r   r   KeyErrorgetattrr)  )r'   r  r  r   r  r)   rS  rn   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   rA  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    0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monthrw   r   r6  ru  r   r5   r6   rA  rq  )r#   r$   r%   r9   rh   r"   r  r  r  r8   rk   )	r'   r_  r   r`  r,   r@   rn   s_unstackedrx  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'   r_  r   r`  r,   s        r   test_stack_names_and_numbersz7TestStackUnstackMultiLevel.test_stack_names_and_numbersE  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 numberrf  re  )r#   r   r   
IndexErrorr"   r  s        r   !test_stack_multiple_out_of_boundsz<TestStackUnstackMultiLevel.test_stack_multiple_out_of_boundsP  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  rb   rw   rx   r2   strr   r5   r6   r2   rD   rQ   rq   r:   r5   rA  r   )r  r  r  )r5   r2   rQ   )r6   rD   rq   r  r7   period1)2013-122013-112013-102013-092013-082013-07period2)r  r  r  r  r  r  r6   rD   rq   rQ   )r   PeriodIndexr   r	   r  r   r#   r   r9   rb   r$   r%   r&   r   rH   )r'   idx1idx2valuer   rn   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  )rq   rQ   rD   r2   r6   r5   r  r:   r5   rA  r   r  r  )r  r  r  r  r  r  zA A A B B B)rQ   r5   rq   r6   rq   r5   )rD   r6   r2   r2   rQ   rD   r7   )r  r  r  r  )r  r  r  zA A B B)rQ   rD   r6   r2   )r5   r6   rq   rQ   )rq   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_frame  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          }	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  rq   )IDNAMEDATEVAR1r  r  Paramsz-agg function failed [how->mean,dtype->object]r   zW-THUT)numeric_onlyr   r  )r   to_datetimer   r   r   integersr   rf   r9   rb   r#   reescaper   r   r   resamplemeanr"   rk   r$   r%   )r'   r   id_colrb   datevar1r)   multiunstr   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GHH]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   r1  rw   rx   Fr  r1  r   T)r   rf   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   rh   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   irr   rQ   i   rq   i  )rw   rx   r   r   r   r   )rw   rx   r   r   r   r   )r   r   r   r   r  r   rf   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   r2  r  r3  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                     G d dt           j                  }|                                5 }|                    t           d|           t	          t
          j                            d                              d          t          j	        d          t          j	        d          g          }d}t          j        t          |	          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 xZS )aTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32.<locals>.MockUnstackerreturnNc                 T     t                      j        |i | t          d          )NDon't compute final result.)super__init__	Exception)r'   argsrS  	__class__s      r   r  zjTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32.<locals>.MockUnstacker.__init__4  s.      $1&111 =>>>r   )r  N)r  r  r  r  __classcell__)r  s   @r   MockUnstackerr  3  s=        ? ? ? ? ? ? ? ? ? ?r   r  
_Unstackerr6   )   r6   r	  r:   z$The following operation may generater   r   )reshape_libr  contextsetattrr   r   r   r   r   r   r$   assert_produces_warningr   r   r   r  r#   )r'   monkeypatchr  rY  r)   r   s         r   /test_unstack_number_of_levels_larger_than_int32zJTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32.  s   
	? 	? 	? 	? 	?K2 	? 	? 	?   "" 		!aIIk<???	%%a((88DDy''5)9)9:  B 9C+,>cJJJ ! !]94QRRR ! !JJLLL! ! ! ! ! ! ! ! ! ! ! ! ! ! !! ! ! ! ! ! ! ! ! ! ! ! ! ! !		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		!sZ   B!D:D"*D?D"DD"DD"D:"D&	&D:)D&	*D::D>D>r>   c              #   l   K   | ]/}t          j        t          j        g d |          d          V  0dS )r`   r6   r   N)r   r   r  )r   widths     r   rK  z$TestStackUnstackMultiLevel.<genexpr>F  sW       &
 &
 i4YYYFFqQQQ&
 &
 &
 &
 &
 &
r   r   	stack_levr  TFc                 @   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   rl   r  r   r5   )r	   r   r;   r"   r8   r9   rk   )r'   r>   r  r  r   r9   r)   rS  
df_stackedrowr  r@   
result_row
result_colr?   s                  r   %test_stack_order_with_unsorted_levelsz@TestStackUnstackMultiLevel.test_stack_order_with_unsorted_levelsD  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)rw   r   rx   )rx   rw   r   r2   r  rQ   rV   )r9   r8   rl   c              3      K   | ]Q}j         D ]G}j        ||f                             d           j        ||d          f|d         f         k    V  HRdS )r   r   r5   N)r9   rk   r"   )r   r  r  r)   r   s      r   rK  z]TestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels_multi_row.<locals>.<genexpr>i  s       
 
 z	
 
  F38xxx5593A-Q:OPQ
 
 
 
 
 
 
r   )r	   r   r   r;   tiler   r   rI   r   r6  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   rl   r8   r  Tr   r2  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   r  r:   )r	   r   r;   r"   r$   r%   )
r'   r   r>   r  r9   r)   rS  r?   r   r@   s
             r   1test_stack_order_with_unsorted_levels_multi_row_2zLTestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels_multi_row_2p  s   !	F<<<2NOOOweAhhZ|||LLL#7&$)II,I&II# LL1a&)+++-E-E-EF
 
 
 ++++++  !
 
 
 	fh/////r   c           	      h   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g dt          j        ddgddg                    }t!          j        ||           d S )NrQ   c                     g | ]}d | S )r4   rx  rJ  s     r   r   zVTestStackUnstackMultiLevel.test_stack_unstack_unordered_multiindex.<locals>.<listcomp>      )))QQ)))r   c                     g | ]}d | S r  rx  rJ  s     r   r   zVTestStackUnstackMultiLevel.test_stack_unstack_unordered_multiindex.<locals>.<listcomp>  r"  r   r4   r3   r   r  rF   r5   r4  r  r   a0b0r  r  r  r  a3b3a4b4r  )r3   rF   )r4   rF   r   r7   )r   r   vstackr   r&   r9   rb   r   rP  rh   rv  r  r"   r#   r	   rd   r$   r%   )	r'   r   r   rl   r)   second_level_dictmulti_level_dfr?   r@   s	            r   'test_stack_unstack_unordered_multiindexzBTestStackUnstackMultiLevel.test_stack_unstack_unordered_multiindex  sl   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 |d         j        t          j        k    sJ |d         j        t          j        k    sJ d S )	Nr   r   r6   r   r  r  )r   r5   )r   r5   )r#   rS   r   r|   object_r^  s       r   test_unstack_preserve_typesz6TestStackUnstackMultiLevel.test_unstack_preserve_types  s     >CCKK((	 &"*4444 &"*4444 &"*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   rs   r   r5   r  r  r:   )r2  r6   r   rD   )r   r  r   r	   r   r   r#   r!   r"   r$   r=   rv  r8   )r'   r   r  r   r8   rn   r?   r*   s           r   !test_unstack_group_index_overflowz<TestStackUnstackMultiLevel.test_unstack_group_index_overflow  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           	      Z   t          g dg ddgdz  d                              ddg          }d|d	<   |s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d          t          j        g dd dg                    }|r<|d                             d          |d<   |d                             d          |d<   t          j        ||           d S )N)rw   rw   rx   )cacbr6  r&  r2   )r3   r4   r  r3   r4   r5   is_r6   r7  r5  r   )      $@r9  r   r   r9  r^  r   rw   rx   r  )rS   rb   ))r  r5  r  r6  r8  r7  r6  r   r7   r:  rj   r;  )r   rf   rI   rJ   rK   r#   r  r   rH   r   r	   rd   ri   r$   r%   )r'   rL   r)   r?   r@   s        r   +test_unstack_with_missing_int_cast_to_floatzFTestStackUnstackMultiLevel.test_unstack_with_missing_int_cast_to_float  sl   $__'''TAX 
 
 )S#J

 	 5	" 	,rw~&&!++++C &} 5 < <Q ? ?}###bfdC%=>c
(===*HHHSk  
 
 
  	N$,[$9$@$@$I$IH[!&.}&=&D&DW&M&MH]#
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   rC  )L1L2L3rF   )r>  r?  r@  )n1n2n3Nr>  )r>   r   r?  r@  )rF   r5   r2  )r6   r2   r   r5   r  )	r   rf   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   rQ   ))r   NN)r   r6   r   )r   r6   r5   )r   r2   r   )r   r2   r5   r   r6   r   r   r^  r   r-  )rV   r   r5   r  r2   )r   N)r   r   r  )rH  )r   r6   )r   r2   r7   )
r   r   rC  r	   rd   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 S )Nrw   r6   rx   r|  ccddrs   rD   r   r5   r   r   r2   rQ   rq   rr   ababababccddccddr   aabbaabbcdcdcdcd)r	   r  r   r   rz   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&	  s9   %	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/////r   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   rw   ry   r  r  r   r   r5   Numr   r  r   r4   r  r  r  r  )r5   r4   r^  r  rC   rx   r   )r   r   r   r   r	   rd   rH   r   r|   r"   r$   r%   )r'   r   df_nanr?   r8   r@   s         r   test_stack_nan_levelz/TestStackUnstackMultiLevel.test_stack_nan_level]	  sw   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 )Nrw   r   r5   r   r3   r4   r:   r   r  )r   r   )r   r5   )
r	   r<   r   r   r   r#   rd   r9   r$   r%   r   s        r    test_unstack_categorical_columnsz;TestStackUnstackMultiLevel.test_unstack_categorical_columnsy	  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)rl   r8   r9   r`  ra  r   i'  )A0r^  r   r5   r4  )r	   r<   rz   r;   rI   r   r#   r9   rO  rk   r"   r  r$   r=   )
r'   r   r_  r`  ra  r   VDFr?   r@   s
             r   test_stack_unsortedz.TestStackUnstackMultiLevel.test_stack_unsorted	  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&  rn  r      )i1     rl  ro  r  r   r   )r   r9  r9  g      "@g     s@g     [@rR   )rm  rn  rn  ro  rp  ro  )r  rj  r:   )r	   r<   r   r   r  r   r   
Int64Dtyper"   ri   rj   r$   r%   r9   Float64Dtyper>   rb   )r'   r   r9   r8   arrr)   r?   r@   s           r   test_stack_nullable_dtypez4TestStackUnstackMultiLevel.test_stack_nullable_dtype	  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   rY  r:   rF   )rY  r3   )r5   rv  )r6   rw  r   rG   r   )r	   r  r   r#   rd   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   )8r  r  r  ra  r   r  r  rn  rs  r{  rz   r	   r   r  r   r   rd   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  slowr  r   chainfrom_iterabler;   r  r  r  r-  r0  r3  r<  rF  rI  rP  rT  rV  rf  rt  ry  rx  r   r   r\  r\    sG       ' ' ' [? 0//1O1O1OP>>>(((	 *))+C+C+CD666"""	 *))+F+F+FG666"""		
 .0 0/ .0(	3 	3 	3J* J* J*X [ 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--  	
 2* *3 2*&* * *22 2 2Y Y Y"
: 
: 
: [X';<<8 8 =<8&0 0 0
1 
1 
1 M  M  MD	E 	E 	EA A AC3 C3 C3J-1 -1 -1^& & &2= = =      ** * * [! ! !* [%% &
 &
&
 &
 &
 	
 	
  [[%%((33[VdE]33* * 43 43 *"
 
 
$0 0 0*0 0 065 5 5#( #( #(J0 0 0@0 0 000 0 0850 50 50n0 0 080 0 01 1 1,#0 #0 #0J0 0 0 0 0r   r\  c           	          t          g dg dg dgg d          }|                    |           }t          g dt          g dg dgg d	g d
g                    }t	          j        ||           d S )Nr   )rD   rQ   rq   )rr   rs   r   )r  r}  r~  r   r   )	r5   r6   r2   rD   rQ   rq   rr   rs   r   r`   )	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@   s       r   test_stack_tuple_columnsr~  	  s    		IIIyyy)3Q3Q3Q
 
 
B XX<X00F###II===>...0K0K0KL
 
 
  H 68,,,,,r   )/r   ior   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   r"  r'  r/  r  r2  r4  r6  rA  rE  rQ  rT  rZ  r\  r~  rx  r   r   <module>r     s                   				            , , , , , ,                            6 6 6 6 6 6 e}%%%  &%X0 X0 X0 X0 X0 X0 X0 X0v& 9i"899", ", :9",J, , ,,, , ,0	- 	- 	- D%#@AA1 1 BA1 D%#@AAay110 0 21 BA0") ) ), , ,>
, 
, 
,) ) ),#, #, #,L- - -$Q0 Q0 Q0 Q0 Q0 Q0 Q0 Q0h- - - - -r   