
    bMh}                       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          ej                            dddej#        g          d                         Z$ej        "                    d          ej                            dddej#        g          ej                            ddd g          d                                     Z%d Z&d Z'ej        "                    d          d             Z(d Z)ej        "                    d          d             Z*ej        "                    d          d             Z+ G d d           Z,d! Z-ej                            d"dej.        fdej.        fdej/        fd#ej/        fg          ej                            d$ddg          d%                         Z0dS )&    )datetimeN)lib)PerformanceWarning)	DataFrameIndex
MultiIndexPeriodSeries	Timedelta
date_range)reshapeTF)paramsc                     | j         S N)param)requests    e/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/frame/test_stack_unstack.pyfuture_stackr      s
    =    c                      e Zd Zd Zej                            d          d             Zd Zej                            d          d             Z	d Z
d Zd Zd	 Zd
 Zd Zej                            ddg dg dg dg dg ej        g dddg           ej        g dddg          fdg dg dg eddgd           ej        g dg d          fg          d             Zd Zej                            d          d             Zej                            d          d             Zej                            d          d              Zd! Zej                            d          d"             Zd# Zd$ Zej                            d% ej        d&           ej        d&          f ej        d&d'(           ej        d&d)d'(          ff          d*             Z ej                            d          d+             Z!d, Z"ej                            d-d.g d/ej#        d0d1gej#        d&d2gfd2g d3ej#        d&d2gej#        d0d1gff          d4             Z$ej                            d5d6dg e%d          g          d7             Z&d8 Z'd9 Z(d: Z)ej                            d;d<d=g          ej                            d> e* e+d1                              d?                         Z,ej                            d; e-j.        g d@                    ej                            d> e* e+d                              ej                            dAdBdCg          dD                                     Z/dE Z0dF Z1dG Z2dH Z3dI Z4ej                            d          ej                            dJg dKg dLg dMg dNg dOg dPd.d2gd.d1gd.dgd.gd1gdgg dQg dRg dSg dTg dUg dVd2d.gd1d.gdd.gg          ej                            dWdXd.d2d.d2gd2d.gf          dY                                     Z5ej                            d          dZ             Z6ej                            d[d\d]g          d^             Z7ej                            d          ej                            d[d\d]g          ej                            d_ e*d`          g daf e*db          g dcfg          dd                                     Z8de Z9ej                            d          ej                            df          ej                            dgg dh ej:        d2d1gd0digg          fg dj ej:        d2d1gd0digg          fg dL ej:        d2d1gd0digg          fg          dk                                     Z;ej                            d          ej                            dld2d1gdmdngdodpdpfd2d1gdqdrgdodsdtfg          du                         Z<ej                            dWd.d2g          dv             Z=ej                            dWd.dwg          dx             Z>dS )y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   9ignore:The previous implementation of stack is deprecatedc           	         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_level1   sb   
 ((MMMAq62 qq	6!9===|44!:#:6"1":#F#FGGG
vx000 qq	:3J6RSRTRT:3V3VWWW!,77Z,fQi-CDDfUVi
 
 
 	fh/// S#J%%al%CCS#J'
fh/////r   c                 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_consolidatedK   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_fillW   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_multiindex1  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_comparet  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_dtypesb  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  sH    (   322
 
 
 I!!!$$44V<<g
 
 
 !hh]+, ' 
 
 88-(| $ 
 
 ggii000
IIXqMIEE	
 	
 	
 	

 	IIUAJ\IBB	
 	
 	
 	
# 	 ]:S111 	F 	FIIXqMIEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F
 ggii000
IIXqMIEE	
 	
 	
 	
 	
 	
s   )EEEc                    t          j        g dg d          }t          t          j                            d                              d          |          }|                    ddg|	          }|                    dd
g|	          }|                    dd
g|	          }|                                }g d|j	        _
        t          j        |                    ddg|	          |d           t          j        |                    ddg|	          |d           t          j        |                    ddg|	          |d           |                                }g d|j	        _
        t          j        |                    ddg|	          |d           t          j        |                    ddg|	          |d           t          j        |                    ddg|	          |d           d S )Nr   r   r   r6   r   r   r   r   r   r   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  ss    (   322
 
 
 I!!!$$44V<<g
 
 
  XX(#, & 
 
 !hh]+, ' 
 
 88-(| $ 
 
 ggii%II
IIQFI>>	
 	
 	
 	

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

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

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

 	IIQFI>>	
 	
 	
 	
 	
 	
r   c           	      p   t          ddgt          j        ddgddgg          dg          }|                                }t          t	          j        dt          j        gt          j        dggt                    ddgt          j        ddgddgg                    }t          j	        ||           d S )	NFr3   r4   r   lcolr7   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_binding6  sK   
 ENUENS#J?<<|||<...
 
 

 1BAq6""(((FF ENUEN3<<.H%
 
 
 HRVrvqkArv;DBJ   3*7333
 
 
 	fh/////r   c                    |                                 }t          |t                    sJ |                                 j        }t	          j        ||           t          ddt          j        gddt          j        gd          }t          g d          |_
        |                                 }t          ddgg dgg d	g d
g          }t          ddt          j        ddt          j        g|          }t	          j        ||           |                                }t          d          D ]}|                                 }t	          j        ||           d S )Nr5   r6   rC   rD   rE   r   rF   rG   )r   r   r   r5   r5   r5   )r   r5   r6   r   r5   r6   r>   r  r2   r:   )r"   
isinstancer
   r%   r#   r$   r   r   rH   r   r8   r   r=   r   r;   )	r&   r'   rl   undor?   midxr@   old_data_s	            r   test_unstack_to_seriesz+TestDataFrameReshape.test_unstack_to_seriesS  sQ   ""$$$'''''||~~
dK000 1bf~S!RV4DEEFF???++
#J0%%%'9'9'9:
 
 
 1aArv6dCCC
vx000 99;;q 	" 	"A<<>>DD
h-----r   c                    g dg dg dg dg}t          |t          d                    }|j        }t          t	          j        d          gdz  t          d          	          }t          j        ||           |                    d
dg          }|	                    d          }|j        }t          t	          j        d          gdz  t          j        g dg dgd          	          }t          j        ||           |                    d
dg          }d|d<   |	                    d          }|j        }t          t	          j        d          gdz  t	          j        d          gdz  z   t          j        g dg dgd          	          }t          j        ||           d|d<   |	                    d          }|j        }|rt          j        t          j                  nt	          j        d          }t          t	          j        d          gdz  |gdz  z   t          j        g dg dgd          	          }t          j        ||           d S )N)r5   r5   r2   rD   r5   r6   r2   rD   )r6   r5   r2   rD   )r6   r6   r2   rD   ABCDr   rj   rD   r:   rw   rx   )r   r   r   r   )r5   r6   r5   r6   )Nrx   r   rC   r   r|   r6   r   r   )na_valuer  )r   rz   dtypesr
   r   rS   r#   r=   rf   r"   r   r  r   StringDtyperH   )	r&   using_infer_stringr}   r(   r?   r@   rM   r   rS   s	            r   test_unstack_dtypesz(TestDataFrameReshape.test_unstack_dtypesn  s   lllLLL,,,GtT&\\22228G,,-1fFFF
vx000 llC:&&kk#Xg!#(%%%|||4K  
 
 
 	vx000 llC:&&Ckk#Xi  !A%'):):(;a(??(%%%|||4K  
 
 
 	vx000Ckk# "$BNBF++++(## 	
 Xi  !A%!3(%%%|||4K  
 
 
 	vx00000r   zc, 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  sL    $j*%=dD\RRR1vS)))E]:S111 	 	JJt	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]:S111 	8 	8DJJt,J777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s$   A--A14A1B==CCc                    t          j        dgg dg          d d         }t          ddggdz  |          }|                                }t          j        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   rK  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   IIr4  r   F)droprN  r   r   r   )r   rf   rk   slicer"   r,  r   r<   r9   r8   	droplevelr#   r$   )r&   rK  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   r1  r   )r   r   r5   r   r   r   r5   )i1i2i3i4i5i6i7r   )rX  rY  rZ  r[  r\  r]  )r1  rX  rY  rZ  r[  r\  r]  rW  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   r1  c2r   )r)     r   )r)  rc  (   rW  rX  rY  r   rX  rW  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   )rk  A5o   )m2rl  rm  )rp  rn  ro  re  r   r   rY  rX  )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)rt  rs  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>.castD      3JJbbCG>>!r   r3   r4   r   )ra   rF   rG   rU   )za.wzb.xz .yzd.z)rs  rt  joliers  rt  r  rD  c                 P    t          | t                    rt          |           n| gS r   r  tuplerz   r3   s    r   <lambda>z>TestDataFrameReshape.test_unstack_nan_index1.<locals>.<lambda>W  !    z!U';';DDGGG! r   .)r   r   rH   rf   r"   r%   r#   r$   rz   notnar   sumrI   nonzerozipsortedr,  splitr8   r9   map)r&   r   ru  r  r(   r.  r-  r  udfmk_listr}   rK  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 rx  r{  r|  s     r   r  zATestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.castc  r  r   r   r2   rQ   r3   r6   r   r   r4   rG   ra   rU   rD   rF   )C   '   5   H   9   P      rE  r@  r   ;   2   >   r  L   4      r  <   3   r  c                 J    d                     t          |                     S )Nr  )joinr  rr  s    r   r  zETestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.<lambda>  s    sxxD!55 r   r5   r7  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>  s)    sxxD!&2,(?(?@@ r   r  r  rD  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   ru  r  r(   r  r  r  r}   rK  r   r^   r.  r-  r  s                 @r   test_unstack_nan_index_repeatsz3TestDataFrameReshape.test_unstack_nan_index_repeats_  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   r4  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   rK  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)  r4  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   rK  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(Ura  Pbg	VZ>)Sn@>]K=?)=()Agra  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   rK  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  rs  rt  r  z
2014-02-02r  )r5   r  )r2   r  )r5   r  )rD   r  r  rr  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                    t          ddd          }t          g dt          j        |ddfg                    }|rd nt          }d}t          j        ||          5  |                    |	          }d d d            n# 1 swxY w Y   t          j        d
dg          }t          j        |dfg          }t          g d||          }	t          j	        ||	           d S )Ni  r5   r!  rw   rx   r   z2The previous implementation of stack is deprecatedr   r   r5  )rx   r7   )
r   r   r   rd   FutureWarningr#   assert_produces_warningr!   r<   r$   )
r&   r   tr(   warnr   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#6ttB'C888 	9 	9XX<X88F	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 &f'=>>&Cz22\\\uEEE
fh/////s   BBBmultiindex_columnsr  r5  )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_multiIndexy  sK   
 %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@  rA  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_dtype  s     "4;;4;;PWXXX~t444|44 &$'788,,,d333
vx00000r   zlabels,dataru   )r)  r@  rA  r>  r  rB  zyx)r  rB  rA  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   r5  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   z4ignore:Downcasting object dtype arrays:FutureWarningz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:   rD  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   r7  )r8  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__r/   r   markfilterwarningsrA   rO   ro   r~   r   r   r   r   r   parametrizer   rd   r   r   r   r   r   r  r
  r  r  r'  r   rF  r   r/  r2  r=  rH   rL  rQ  rU  r_  rf  rq  rz   r;   r  r   permutationsr  r  r  r  r  r  r  r  r  r  r  r<   r  r  r  r  r{  r   r   r   r      s'
       > > >$ [C 0 0 0.
. 
. 
. [C ,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 [C 
 
 
< [C 6
 6
 6
p [C ;
 ;
 ;
z& & & [C 0 0 04. . .6/1 /1 /1b [RXa[[("(1++&RYq%%%yryBd'C'C'CD	
 + + +. [C 8 8 8A A A0 [,+++bfc1-=1~N---1~Q?OP	
 0 0 0" [VsCj%%++%>??0 0 @?00 0 0,K K K0 0 0& [U^^$DEE[UDDqNN33! ! 43 FE!: [U$:I$:;P;P;P$Q$QRR[UDDqNN33[UUEN33;! ;! 43 43 SR;!z/+ /+ /+b+ + +8'5 '5 '5R/ / /.0 0 0 [C  [OOLLLLIIIIIIFFFCCCOOLLLLIIIIIIFFF+	
 4 [Wr1a!Q!Q&@AA4 4 BA5  <4B [C 0 0 0* [Y661 1 761 [C  [Y66[T%[[2223T%[[2223	
 1 1  76 1&	1 	1 	1 [C  [ VWW[\\2:2QFS#J3GHHI\\2:2QFS#J3GHHI\\2:2QFS#J3GHHI	
 C C  XW 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          
          }t          j        ||           |                     d          }t          g dg ddt          d	          t          
          }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#   r$   )rl   r?   r@   s      r   test_unstack_fill_frame_objectr)  M  s    &&&h777D'888 DJ
 \\^^FBFC S"&'9::5kk  H
 &(+++ \\S\))FooOOO44DKKv  H &(+++++r   c            
         t          t          j        dd          gdgdgdgdg d          } |                     ddg                                          }t          t          j        dd          dggt          dgd	          t          d
dgdggddgddggd dg                    }t          j        ||           d S )Nz2017-08-27 01:00:00.709949+0000UTC)tzr3   r4   r   )	timestampr3   r4   r   r   r   r-  r   r5   r  r7   )	r   r   r   rf   r"   r   r   r#   r$   )r(   r?   r@   s      r   "test_unstack_timezone_aware_valuesr.  e  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_valuesr6  }  s    	JJCU	V	V	VB	C9OOO	4	4	4BXX<X00F
3% 8III@VWWW  H 68,,,,,r   r0   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_framer9    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 )Nr8  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_framer;    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_seriesr=    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   rE  rF  rG  rG  rW   rE  rF  )rA  ra  ra  ra  )ra  ra  ra  g       @rb   r   ))rD  rB  Fr   )rD  rB  Tr   )rD  rC  Fr   )rD  rC  Tr   )NrG  rE  rF  r   r7   )r   rf   r"   r   r   rd   r#   r$   )r(   r@   r?   s      r   test_unstacking_multi_index_dfrH    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_namesrL    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   r4  r6   rB  r5  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 r{  )r"   )r   nr(   s     r   r   z6test_unstack_non_slice_like_blocks.<locals>.<listcomp>  s%    <<<a"Q%--//<<<r   rD   r5   )keysr8  )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_blocksrX    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   r{  )r   rH   r   r   r!   r  r#   r$   )r   rl   r(   kwargsr?   r@   s         r   test_stack_sort_falser[    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   r]  r^  )r   r_  r`  )r   r]  r^  )r   r_  r`  )r   r#  rC   r   r:   )r   rd   r   r!   r
   r#   r=   )r   r   r(   rZ  r?   r   r@   s          r   !test_stack_sort_false_multi_levelra    s     
 "2O!D
E
EC	S#Jc
+E5>3	O	O	OB4RRfe_FRXq!fBB<B6BBF+	
 	
 	
 N ***.AAAH68,,,,,r   c                   
   e Zd Zd Zej                            dg dg dgg ddg dfg dg d	gg d
dg dfg dg dgg d
dg dfg          d             Zd Zej        	                    d          d             Z
ej                            d e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ej        	                    d          d"             Zej        	                    d          d#             Zd$ Zej        	                    d          d%             Zej                            d&d'd(g          d)             Zd* Zej        	                    d          d+             Zej        	                    d          d,             Zej        	                    d          d-             Zej        	                    d          d.             Zd/ Zd0 Zej        	                    d          d1             Zej        	                    d          d2             Z d3 Z!d4 Z"ej        	                    d          d5             Z#ej        j$        d6             Z%ej        	                    d          ej                            d7e&j'        (                    d8 d9D                                 ej                            d: e)d                    ej                            d;d<d=g          d>                                                 Z*ej        	                    d          d?             Z+ej        	                    d          d@             Z,ej        	                    d          dA             Z-dB Z.dC Z/dD Z0dE Z1ej        	                    d          dF             Z2ej        	                    d          dG             Z3ej        	                    d          dH             Z4dI Z5ej        	                    d          dJ             Z6ej        	                    d          dK             Z7dL Z8dS )M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_unstack2  sl    =KKMM	 	

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

28$$&&&&&r   z5result_rows,result_columns,index_product,expected_row)r5   r5   NN      >@N)r6   r6   NNrh  N)ix1ix2col1col2col3col4r6   )NNrh  N)r5   r5   NNrh  )r6   r6   NNrh  )ri  rj  rk  rl  rm  )NNrh  )r6   NNNrh  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   ri  rj  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   r9  r8  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_columnsj  s    &HHH
 
 29((++;;A>>eLLLIIq!f%%	###66
i22222r   r0   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   r9  rx  r6   rD  r   rV   r5   r7  r2   r   )r"   r!   r  r#   r$   r  r  rk   r=   reindexr8   assert_equal)r&   re  r   rf  r+   	restackedunlexsortedr?   r@   r)   ymd_stackeds              r   
test_stackz%TestStackUnstackMultiLevel.test_stacku  sR    > KKMM	OOO>>	 	4!((U(33I
i---nn1n--''**	OOO>>	 	4!((U(33I
i222;;SAAA!$$B$'''**	OOO>>HHANN	 	4!((U(33I
i222;;SAAA!++Aq11''**44Q4BB	OOALOAAKKAqQQ	 	4!((U(33I
i222;;SAAA KKMM	OOO>>	 	4!((U(33I
i--- KKNN**1--	>>;;==
fh///>>;;q>>
fh///>>99,977??BBJJ1MM
fh/// KKNN&qqq##A#v.	//|/<<BB% C 
 
 ii\i:: 	8nnn//G%,,,77K
w(;(;GM(J(JKKK Q%%b|%DD;;q>>'''EE
)))))r   zidx, 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 )
NrA  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                    t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   dgdz  d	gdz  z   dgd
z  z   d	gdz  z   ddgdz  g dz   gg d          }t          t          j        dd          t          j        dd          d|          }|                    d          }|                    |          }|r|                    d          }t          j	        ||           d S )NFrirD   Satr6   SunThur2   DinnerLunchrQ   NoYes)r  r  r  )daytimesmokerr   r@  r|   rR   )r  rI   r:   r   r9  r{  )
r   r  r   r   r   r"   r!   r  r#   r$   )r&   r   r  r(   r?   reconss         r   test_unstack_odd_failurez3TestStackUnstackMultiLevel.test_unstack_odd_failure  s8    #!ugk)UGaK75'A+E
Q'Q.(a?7)a-Ou!$7$7$77
 ,++
 
 
 y9555y9555  
 
 
 A<88 	.]]u]--F
fb)))))r   c                 ^   |}|j         }d|d<   |                    dd          }|                    |          }|d                             |                                          }t          j        |d         |d           |j        J |d         j        t          j        k    sJ d S )	Nr   )r   fourr5   )r   r8  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     1W!=]]]++(((55El;;FFHH
wu~v5IIII{"""u~#rz111111r   c           	      
   t          g dg dg dg dt          j        d          d          }d}t          j        t
          |          5  |                    g d	                              t                    }d d d            n# 1 swxY w Y   |	                                }|
                    |
          }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  extraz7DataFrameGroupBy.apply operated on the grouping columnsr   )r   r   r  r  r   )r   r   r   r#   r  r  groupbyr  rI   r"   r!   r=   r|  r8   ri   re   )r&   r   r(   r   r?   r+   r~  s          r   test_unstack_bugz+TestStackUnstackMultiLevel.test_unstack_bug  sN   RRR555---???3 
 
 H'SAAA 	M 	MZZ @ @ @AAGGLLF	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M NN$$	OOO>>	
y&..*I*I*P*PQV*W*WXXXXXs   0B		BB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+   r~  s         r   !test_stack_unstack_preserve_namesz<TestStackUnstackMultiLevel.test_stack_unstack_preserve_names/  s|     1MMOO	#w.... &5(*;;;;;OOO>>	$(9999999r   methodr!   r"   c                    |}|j         d         }|dk    rd|ini }t          j        t          d          5   t	          ||          d	i | d d d            n# 1 swxY w Y   |dk    r]|j        d d df         }t          j        t          d          5   t	          ||          d	i | d d d            d S # 1 swxY w Y   d S d S )
Nr   r!   r   zdoes not match index namer   mistaker"   r   )r  )rk   r   r   KeyErrorgetattrr,  )r&   r  r  r   r  r(   rZ  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   rD  r   )r&   r  r  r?   r@   s        r   test_unstack_level_namez2TestStackUnstackMultiLevel.test_unstack_level_nameR  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_nameY  s     1MM(++	\BB==??(((FF
fh///U>>;;L;99
vx00000r   c                 n   |}|                     ddg          }|                     d                               d          }t          j        ||           |j        j        |j        j        k    sJ |d         }|                     ddg          }t          j        ||d                    |                    ddg|          }|r|                    d          }|                    dd                              dd	          }|                    d
          }t          j        ||           |j	        j        |j	        j        k    sJ |                     dd	g          }|                     d                               d                              dd          }t          j        ||           |                     d	dg          }|                     d	                               d                              dd          }t          j        ||j
        d d |j        f                    d S )Nyearmonthrw   r   r9  r{  r   r5   r6   rD  rw  )r"   r#   r$   r9   rh   r!   r  r  r  r8   rk   )	r&   re  r   rf  r+   r@   rn   s_unstackedr~  s	            r   test_stack_unstack_multiplez6TestStackUnstackMultiLevel.test_stack_unstack_multipleh  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&   re  r   rf  r+   s        r   test_stack_names_and_numbersz7TestStackUnstackMultiLevel.test_stack_names_and_numbers  s     >KK 122	 ]:-CDDD 	E 	EOOQL|ODDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   AA #A c                 j   |}|                     ddg          }t          j        t          d          5  |                    ddg|           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    d	d
g|           d d d            d S # 1 swxY w Y   d S )Nr  r  zToo many levelsr   r6   r2   r   znot a valid level numberri  rh  )r"   r   r   
IndexErrorr!   r  s        r   !test_stack_multiple_out_of_boundsz<TestStackUnstackMultiLevel.test_stack_multiple_out_of_bounds  sL    >KK 122	]:->??? 	? 	?OOQFO>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?]:-GHHH 	A 	AOORH<O@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As#   AA"AB((B,/B,c           
         t          j        g ddd          }t          ddgdz  d	          }g d
}t          j        ||g          }t          ||          }|                                }|                    d          }|                    d          }t          j        g ddd          }	t          g dg dd|	ddg          }
d|
j        _	        t          j        ||
           t          j        ||
           t          j        ||
j                   t          j        g ddd          }t          j        g ddd          }t          j        ||g          }t          ||          }|                                }|                    d          }|                    d          }t          j        g ddd          }	t          j        g ddd          }t          t          j        t          j        t          j        t          j        ddgt          j        t          j        ddt          j        t          j        gddt          j        t          j        t          j        t          j        gg|	|          }
t          j        ||
           t          j        ||
           t          j        ||
j                   d S )N)2013-01r  2013-02r  2013-03r  Mperiodr  rb   rw   rx   r2   strr   r5   r6   r2   rD   rQ   rq   r:   r5   rD  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   rD  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          }
|rd}
t          j        t          |
          5  |	                    d                                           d d d            n# 1 swxY w Y   |	                    d                              d          }|                    d|          }|	j        d d dgf                             d                                                              d|          }d|j        _	        t)          j        ||           d S )Nr5   r2   r6   r3   r4   )z
2013-01-03z
2013-01-04z
2013-01-05r   r  rq   )IDNAMEDATEVAR1r  r  Paramsz&agg function failed [how->mean,dtype->z-dtype 'str' does not support operation 'mean'r   zW-THUT)numeric_onlyr   r  )r   to_datetimer   r   r   integersr   rf   r9   rb   r"   reescaper   r   r   resamplemeanr!   rk   r#   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@AA 	BAC]9C000 	* 	*MM'""'')))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*}}W%%***==ZZ<Z88HQQQ[!XgTVVU4lU33	 	 #

b"%%%%%s   '(DD"Dc                    t          ddgddgddgd          }|                    ddg          }|sd	nt          j        }|                                                    ||
          }t          |          t          |                                          k    sJ |r_t          j	        t          d          5  |                                                    d|
           d d d            d S # 1 swxY w Y   d S |                                                    d|
          }t          j        ||                                           d S )Na1a2b1b2r5   r4  rw   rx   Fr  r8  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_hierarchicalP  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   r5  r  r6  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_keysu  s    
 a&,,,'|||,65))ry,,Q//??GGuUUU6>""a''''<88
fb)))))r   c                 R    G d dt           j                  }|                                5 }|                    t           d|           t	          t          j        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&   argsrZ  	__class__s      r   r  zjTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32.<locals>.MockUnstacker.__init__  s.      $1&111 =>>>r   )r  N)r  r  r  r  __classcell__)r  s   @r   MockUnstackerr
    s=        ? ? ? ? ? ? ? ? ? ?r   r  
_Unstacker)   r6   r  r:   z$The following operation may generater   r  )reshape_libr  contextsetattrr   r   rF  r   r#   r  r   r   r   r  r"   )r&   monkeypatchr  r`  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<???$$y''5)9)9:  B 9C+,>cJJJ ! !]94QRRR ! !JJLLL! ! ! ! ! ! ! ! ! ! ! ! ! ! !! ! ! ! ! ! ! ! ! ! ! ! ! ! !		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		!sZ   BD0DC-!D-C11D4C15D8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   rR  z$TestStackUnstackMultiLevel.<genexpr>  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(   rZ  
df_stackedrowr  r@   
result_row
result_colr?   s                  r   %test_stack_order_with_unsorted_levelsz@TestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels  s    " F<<<2NOOOweAhhZ888#7&$RXiMMlMfMM
8 	* 	*Cz * *6#s(+ #i.0
 Y/
#
J(>?)))))*	* 	*r   c           
         t          g dg dgt          j        t          d          d          t          j        t          d          d          g          }t          |t          d          t          j        dt          |          z                                dd                    t          fdj
        D                       sJ d S )	N)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   rR  z]TestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels_multi_row.<locals>.<genexpr>  s       
 
 z	
 
  F38xxx5593A-Q:OPQ
 
 
 
 
 
 
r   )r   r   r   r;   tiler   r   rI   r   r9  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   r5  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(   rZ  r?   r   r@   s
             r   1test_stack_order_with_unsorted_levels_multi_row_2zLTestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels_multi_row_2  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   r{  rQ  s     r   r   zVTestStackUnstackMultiLevel.test_stack_unstack_unordered_multiindex.<locals>.<listcomp>      )))QQ)))r   c                     g | ]}d | S r  r{  rQ  s     r   r   zVTestStackUnstackMultiLevel.test_stack_unstack_unordered_multiindex.<locals>.<listcomp>  r.  r   r4   r3   r   r  rF   r5   r7  r  r   a0b0r  r  r  r  a3b3a4b4r  )r3   rF   )r4   rF   r   r7   )r   r   vstackr   r%   r9   rb   r   rW  rh   r|  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  sn   
 1y))&)))))&)))
 
 tvSz222!
 "I#41===(0'':$##F>+A$B$B#KK7H-LIIQQh
 
 D\D$<$d|dD\R!//*Z((0C  
 
 
 	fh/////r   c                     |}d|d<   d|d<   |                     d          }|d         j        t          j        k    sJ |s|d         j        t          j        k    sn	 nJ |d	         j        t          j        k    sJ d S )
Nr   r   r6   r   r  r  )r   r5   r  )r   r5   )r"   rS   r   r|   object_)r&   re  r&  rf  r+   s        r   test_unstack_preserve_typesz6TestStackUnstackMultiLevel.test_unstack_preserve_types	  s     >CCKK((	 &"*4444 &	
f#rz111 211  &"*444444r   c                 j   t          j        t          j        d          d          }t          j        d          }t          |gdz  ddggz   |gdz  t          j        d                              d          gz             }t          t          j        d          |          }|                                }|j        d	k    sJ |                    |
          }t          j
        ||                    |j                             t          ddgg|gdz  z   t          j        d                              d          g|gdz  z             }t          t          j        d          |          }|                    d          }|j        d	k    sJ t          |gdz  ddggz   |gdz  z   |gdz  t          j        d                              d          gz   |gdz  z             }t          t          j        d          |          }|                    d          }|j        d	k    sJ d S )N  r6   rs   r   r5   r  r   r:   )r>  r6   r   rD   )r   r'  r   r   r   r
   r"   r    r!   r#   r=   r|  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           	      X   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          t          j        g dd dg                    }|r<|d                             d          |d<   |d                             d          |d<   t          j        ||           d S )N)rw   rw   rx   )cacbrB  r)  r2   )r3   r4   r  r3   r4   r5   is_r6   rC  rA  r   )      $@rE  r   r   rE  ra  r   rw   rx   r   ))r  rA  r  rB  rD  rC  rB  r   r7   rF  rj   rG  )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;	  sj   $__'''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   rJ  )L1L2L3rF   )rJ  rK  rL  )n1n2n3NrJ  )r>   r   rK  rL  )rF   r5   r5  )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   ra  r   r4  )rV   r   r5   r  r2   )r   N)r   r   r*  )rT  )r   r6   )r   r2   r7   )
r   r   rF  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_columnss	  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	  s;   
 %	SEAI%tF||,,tF||,,
 
 ry||++Aq114@@@1a&|<< )	 KKVQKVQKKKVQKVQK	 c
 ,a1#')tJ'7'788tJ'7'788   HH* !KVQKKVQKKVQKKVQK	 c
 ,a1#')tJ'7'788tJ'7'788   H( 	fh/////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   ra  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	  sy   
 IaLL  A&&*rv
+GW3E   AU+++*
 
 
 <88 		A.#||\\\2g&  EE *RVhBFX>ugFV  E 26]RVQK#rvF3*7333
 
 

 	fh/////r   c                    t          j        dgddgg          }t          dt          j        ddg          i|          }|                                }t          t          j        dgddg          t          j        dgddg          d	dg          }t          j        d
dg          |_        t          j	        ||           d S )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_columns	  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   rl  rm  r   i'  )A0rj  r   r5   r7  )r   r<   rz   r;   rI   r   r"   r9   rR  rk   r!   r  r#   r=   )
r&   r   rk  rl  rm  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)  rz  r      )i1     ro  r{  r$  r   r   )r   rE  rE  g      "@g     s@g     [@rR   )ry  rz  rz  r{  r|  r{  )r  rv  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   r`  r:   rF   )r`  r3   )r5   r  )r6   r  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   )9r  r  r  rg  r   r  r  rt  ry  r  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+  r9  r<  r?  rH  rR  rU  r\  r`  rb  rr  r  r  r{  r   r   rc  rc  1  s       ' ' ' [? 0//1O1O1OP>>>(((	 *))+C+C+CD666"""	 *))+F+F+FG666"""		
 .0 0/ .0(	3 	3 	3 [C J* J* J*X [ 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*& [C * * *2 [C 2 2 2Y Y Y& [C 
: 
: 
: [X';<<8 8 =<8&0 0 0 [C 
1 
1 
1 [C  M  M  MD [C 	E 	E 	E [C A A AC3 C3 C3J-1 -1 -1^ [C & & &6 [C = = =      * [C * * * [! ! !* [C  [%% &
 &
&
 &
 &
 	
 	
  [[%%((33[VdE]33* * 43 43  *" [C 
 
 
$ [C 0 0 0* [C 0 0 065 5 5"#( #( #(J0 0 0@0 0 00 [C 0 0 08 [C 50 50 50n [C 0 0 080 0 0 [C 1 1 1, [C #0 #0 #0J0 0 0 0 0r   rc  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  I
  s    		IIIyyy)3Q3Q3Q
 
 
B XX<X00F###II===>...0K0K0KL
 
 
  H 68,,,,,r   zdtype, na_valuer  test_multiindexc                    |r)t          j        dt          |g|           gz            }nt          |g|           }t          ddgi|          }|                    d          }|rFt          j        t          |g|           t          |g|           t          dg          g          }n4t          j        t          |g|           t          dg          g          }t          d|          }t          j        ||           d S )Nr6   rR   r3   r5   r:   Tr   )r   r  r   r   r!   r
   r#   r=   )rS   r#  r  r8   r(   r?   r   r@   s           r   test_stack_preserves_nar  Y
  s'     /&qE8*E,J,J,J+K'KLLxj...	C!:U	+	+	+BXX4X((F 
#/xj...xj...se
 
 $/xj...se
 
 a~...H68,,,,,r   )1r   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.  r6  r  r  r9  r;  r=  rH  rL  rX  r[  ra  rc  r  rH   r  r  r{  r   r   <module>r     s             				            , , , , , ,                            6 6 6 6 6 6 e}%%%  &%F0 F0 F0 F0 F0 F0 F0 F0R( 9i"899", ", :9",J, , ,0, , ,0	- 	- 	- WXXD%#@AA1 1 BA YX1 WXXD%#@AAay110 0 21 BA YX0") ) ), , ,> WXX
, 
, YX
,) ) ), WXX#, #, YX#,L WXX- - YX-$U0 U0 U0 U0 U0 U0 U0 U0p - - -  	BF	BF	BE	"%	  *T5M::- - ;: - - -r   