
    d/                       d dl m Z  d dlmZ d dlZd dlZd dlZd dl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  G d d          Zd	 Zd
 Zd Zej                            dddg          d             Zej                            dddg          ej                            ddd g          d                         Zd Z d Z!d Z"d Z# G d d          Z$dS )    )datetime)StringION)PerformanceWarning)	DataFrameIndex
MultiIndexPeriodSeries	Timedelta
date_range)reshapec                   t	   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zej                            ddg dg dg dg dg ej        g dddg           ej        g dddg          fdg dg dg eddgd           ej        g dg d          fg          d             Zd Zd Zd Zd Zd  Zd! Zd" Zd# Zej                            d$ ej        d%           ej        d%          f ej        d%d&'           ej        d%d(d&'          ff          d)             Zd* Z d+ Z!ej                            d,d-g d.ej"        d/d0gej"        d%d1gfd1g d2ej"        d%d1gej"        d/d0gff          d3             Z#ej                            d4d5dg e$d          g          d6             Z%d7 Z&d8 Z'd9 Z(ej                            d:d;d<g          ej                            d= e) e*d0                              d>                         Z+ej                            d: e,j-        g d?                    ej                            d= e) e*d                              ej                            d@dAdBg          dC                                     Z.dD Z/dE Z0dF Z1dG Z2dH Z3ej                            dIg dJg dKg dLg dMg dNg dOd-d1gd-d0gd-dgd-gd0gdgg dPg dQg dRg dSg dTg dUd1d-gd0d-gdd-gg          ej                            dVdWd-d1d-d1gd1d-gf          dX                         Z4dY Z5ej                            dZd[d\g          ej                            d] e)d^           e)d_          g          d`                         Z6ej                            dZd[d\g          ej                            da e)db          g dcf e)dd          g defg          df                         Z7dg Z8ej                            dhg di ej9        d1d0gd/djgg          fg dk ej9        d1d0gd/djgg          fg dK ej9        d1d0gd/djgg          fg          dl             Z:ej                            dVd-d1g          dm             Z;ej                            dVd-dng          do             Z<dS )p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)foobarr   r   )copynparangeprodshaper   stackr   unstacktmassert_frame_equalT)	selffloat_framedfstacked
stacked_df	unstackedunstacked_dfunstacked_colsunstacked_cols_dfs	            a/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/frame/test_stack_unstack.pytest_stack_unstackz'TestDataFrameReshape.test_stack_unstack   s   	"'"(++,,44RX>>111((**ww??@@
OO%%	!))++
i,,,
l512666 ++&..q11
n.333
/68"=====    c           	         t          d          g dddgg}t          d|d         |d                   }|                                }t          dt	          j        |d d                             }t          j        ||           t          d|d         t	          j        |dd                              }|                    d          }t          dt	          j        |d         |d         g          |d                   }t          j        ||           |dd	g                             d          }|dd	g         }t          j        ||           d S )
N   )r*   ab      r   indexcolumnsr0   r+   r,   )	ranger   r   r
   r   from_productr   assert_series_equalr   )r   levelsr   resultexpecteds        r&   test_stack_mixed_levelz+TestDataFrameReshape.test_stack_mixed_level+   sO   ((MMMAq62 qq	6!9===!:#:6"1":#F#FGGG
vx000 qq	:3J6RSRTRT:3V3VWWW!Z,fQi-CDDfUVi
 
 
 	fh/// S#J%%a((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 )Nr-   r.         @   xyr>   r?   )	r   r   NaNlen_mgrblocksr   r   r5   )r   using_array_managerr   df2resr8   s         r&   test_unstack_not_consolidatedz2TestDataFrameReshape.test_unstack_not_consolidatedB   s    aBF^3262BCCDD#ic7C" 	-sx''1,,,,kkmm::<<
sH-----r(   c                 8   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)r-   r.   r<      dtype)r>   r+   )r>   r,   )r?   r,   )zr+   
fill_value)r-   rN   rI   )r.   r<   rN   r+   r,   r>   r?   rM   r0   rK         ?)r-   rT   rI   )r.   r<   rT   r+   r+   r,   )jkrV   r   r-   r.   )r>   r?   rM   wr>   r?   r   )rY   r,   rV   )r   r   r.   )r0   namerY   )r
   r   int16r   from_tuplesr0   r   r   r   r   float	set_indexr5   r   reorder_levelsnamesastypeint64loc)	r   datar7   r8   r   r"   keyr    ss	            r&   test_unstack_fillz&TestDataFrameReshape.test_unstack_fillN   s1   
 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*--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 )Nr-   r.   r*   r<   rI            AB)r1   rK   rL   rN   rO   )r-   r*   r.   r<   )rN   rI   rN   ri   )rj   rN   rk   rN   xyzrS   )Ar+   )ro   r,   )Br+   rp   r,   ro   rp   rT   )rT   rI   rT   ri   )rj   rT   rk   rT   )r   listr   int32r   r\   r0   r   r1   r   r   ra   r[   float64r]   )r   rowsr   r7   r8   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-01r<   periodsrL   r   r*   r-   r.   rQ   rR   r2   rO   )r   valuesr
   r   r\   r0   r   r   pdNaTr   r   )r   dvrd   r7   r8   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(   r<   rL   r   r*   r-   r.   rQ   rR   r2   rO   )r3   r
   r   r\   r0   r   r   r|   r}   r   r   )r   tdrd   r7   r8   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-04rL   r   r*   r-   r.   rQ   rR   r2   rO   )	r	   r
   r   r\   r0   r   r   r   r   )r   rz   rd   r7   r8   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r+   r,   cr+   categoryrJ   rL   axaabc
categoriesbcxrQ   rm   r2   z9Cannot setitem on a Categorical with a new category \(d\)matchdrO   r   acabcc)r
   r   r\   r0   r   r   r|   Categoricalrr   r   r   pytestraises	TypeError)r   rd   r7   r8   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r+   r,   r   r-   r.   r*   rn   rq   r`   r-   	   r.   r   er2   )r-   r-   r-   r.   r.   r.   )r   r+   r   r,   )r   r   r   r+   r   r,   )r   r   rZ   r1   r0   )r   r4   r   r   r\   r   r   r   r   idxr   r7   r8   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_columnsrn   )r-   r-   r.   r.   ))r-   r*   )r-   r<   r.   r*   )r.   r<   rp   Cr   )r   r   r   r   N)rn   rp   )r-   r-   r-   r-   r.   r.   r.   r.   r*   r<   r   ))r   r+   r-   )r   r+   r.   )r   r,   r-   )r   r,   r.   )r   r+   r-   )r   r+   r.   )r   r,   r-   )r   r,   r.   )Nrn   rp   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 )Nr+   r,   r-   r.   r*   r<   )rn   rp   r   r   rk   r   r2   r   )r   r4   r   r   r   r   )	r   unstack_idxexpected_valuesexpected_indexexpected_columnsr   r   r7   r8   s	            r&   *test_unstack_mixed_type_name_in_multiindexz?TestDataFrameReshape.test_unstack_mixed_type_name_in_multiindex%  s    L %3Z!Q!Q(0F0F0F
 
 
 aS1WA37333???K((%5^
 
 
 	fh/////r(   c                 l   t          g dg dt          g d                              d          t          j                            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   r*   r-   r   20010102)      ?g      I@g      Y@float32)r;   g      @g      @rt   F)r-      i2 int8)stater0   some_categoriesro   rp   r   DEFGHc                     |                      |g          }|                      |          }t          j        ||           d S Nr   r   r   )r   column_name
unstacked1
unstacked2s       r&   unstack_and_comparezNTestDataFrameReshape.test_unstack_preserve_dtypes.<locals>.unstack_and_compareh  s?    [M22JK00J!*j99999r(   r   r0   r   r   r   )r   rp   r   rp   r   ro   )	r   r
   ra   r   randomrandr|   	Timestampr^   )r   r   r   df1rf   s        r&   test_unstack_preserve_dtypesz1TestDataFrameReshape.test_unstack_preserve_dtypesV  s   +++(#)///#:#:#A#A*#M#MY^^A&&\*--...//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 )Nr*   repeat      r1   r-   r.   levelrN   T)inplace)r   r\   rr   	itertoolsproductr3   r   r   r   randnr   r   r   r   r1   	set_names)r   r1   r   df_namedreturn_values        r&   test_stack_intsz$TestDataFrameReshape.test_stack_ints  st   (i.?aQR.S.S.S)T)TUUryr2..@@@
bhhaVh44bhhQh6G6G6M6MTU6M6V6VWWW
HHB8H$$bhhQh&7&7&=&=A&=&F&F	
 	
 	
 7799'11%((D1II###
NN!QN(((..q.*A*A*G*Ga*G*P*P	
 	
 	
 	
 	
r(   c                 (   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)ro   catlong)rp   r   r   )ro   dogshort)rp   r   r   expanimalhair_lengthr   r<   r   r   r   r   r   )r   r   r-   r-   Fcheck_nameszSlevel should contain all level names or all level numbers, not a mixture of the twor   r   )r   r   r   )r   r\   r   r   r   r   r   r   r1   r`   r   r   r   r   
ValueError)r   r1   r   animal_hair_stackedexp_hair_stackedrE   r   df3s           r&   test_stack_mixed_levelsz,TestDataFrameReshape.test_stack_mixed_levels  s   (   322
 
 
 ryq!,,g>>> hhh-FhGG885-*@8AA
 ggii000
IIXqMI**,?U	
 	
 	
 	
 	IIUAJI'')9u	
 	
 	
 	
# 	 ]:S111 	+ 	+IIXqMI***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+
 ggii000
IIXqMI**,?U	
 	
 	
 	
 	
 	
s   D88D<?D<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   r<   r   r   r   r   r   rX   r-   r.   Fr   r   )r.   r   r-   )r   r\   r   r   r   r   r   r   r1   r`   r   r   )r   r1   r   exp_animal_stackedr   r   rE   r   s           r&   test_stack_int_level_namesz/TestDataFrameReshape.test_stack_int_level_names  s$   (   322
 
 
 ryq!,,g>>>XXUH,=X>> hhh-FhGG885-*@8AAggii%II
IIQFI##%8e	
 	
 	
 	
 	IIQFI##%7U	
 	
 	
 	
 	IIQFI##%55	
 	
 	
 	

 ggii%II
IIQFI##%8e	
 	
 	
 	
 	IIQFI##%7U	
 	
 	
 	
 	IIQFI##%55	
 	
 	
 	
 	
 	
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 )	NFr+   r,   r   lcolr/   rJ   )
r   r   from_arraysr   r   arraynan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        t
          j        dgdt
          j        gt
          j        dgdt
          j        ggt
          j                  |t          ddgd                    }t          j        ||           d S )Nr   r   onetwor+   r,   r   r   r-   r-   r   r-   r   r-   )r-   r   r-   r   )firstsecondthirdr6   codesr`   r   r2   r-   r.   r  r  rJ   r  r   r/   )r   r
   r   r   r   r   r   r   rt   r   r   r   )r   mirf   r7   expected_mir8   s         r&   test_unstack_level_bindingz/TestDataFrameReshape.test_unstack_level_binding  sD   ENUENS#J?<<|||<...
 
 

 1BAq6""((++ ENUEN3<<.H%
 
 
 H&!q"&kBFA;BF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 )Nr-   r.   r;   r<   r=   r   r>   r?   )r   r   r   r-   r-   r-   )r   r-   r.   r   r-   r.   r6   r
  r*   r2   )r   
isinstancer
   r   r   r   r   r   r@   r   r0   r   r5   r   r3   )	r   r   rd   undor7   midxr8   old_data_s	            r&   test_unstack_to_seriesz+TestDataFrameReshape.test_unstack_to_series  sQ   ""$$$'''''||~~
dK000 1bf~S!RV4DEEFF???++
#J0%%%'9'9'9:
 
 
 1aArv6dCCC
vx000 99;;q 	" 	"A<<>>DD
h-----r(   c                 ~   g dg dg dg dg}t          |t          d                    }|j        }t          t	          j        d          gdz  t          d          	          }t          j        ||           |                    d
dg          }|	                    d          }|j        }t          t	          j        d          gdz  t          j        g dg dgd          	          }t          j        ||           |                    d
dg          }d|d<   |	                    d          }|j        }t          t	          j        d          gdz  t	          j        d          gdz  z   t          j        g dg dgd          	          }t          j        ||           d|d<   |	                    d          }|j        }t          t	          j        d          gdz  t	          j        d          gdz  z   t          j        g dg dgd          	          }t          j        ||           d S )N)r-   r-   r*   r<   r-   r.   r*   r<   )r.   r-   r*   r<   )r.   r.   r*   r<   ABCDr   rb   r<   r2   ro   rp   )r   r   r   r   )r-   r.   r-   r.   )Nrp   r   r;   r   rt   r.   r   r   r   )r   rr   dtypesr
   r   rK   r   r5   r^   r   r   r   )r   ru   r   r7   r8   rE   r   s          r&   test_unstack_dtypesz(TestDataFrameReshape.test_unstack_dtypes)  sm   lllLLL,,,GtT&\\22228G,,-1fFFF
vx000 llC:&&kk#Xg!#(%%%|||4K  
 
 
 	vx000 llC:&&Ckk#Xi  !A%'):):(;a(??(%%%|||4K  
 
 
 	vx000Ckk#Xi  !A%(););(<q(@@(%%%|||4K  
 
 
 	vx00000r(   zc, drI   f8rJ   
   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 )Nr+   rI   rx   ry   )ro   r   r   rp   r*   T)deepro   rp   r   rb   r   )r   r+   )r*   r.   )
r   r   ilocr   r^   ra   r   r   r   r   )r   r   r   r   rightlefts         r&   test_unstack_dtypes_mixed_datez3TestDataFrameReshape.test_unstack_dtypes_mixed_dateU  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 )
NrQ   )r   r   c1r   r-   r.   r2   z5The name c1 occurs multiple times, use a level numberr   )	r   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_namess  sF   $j*%=dD\RRR1vS)))E]:S111 	 	JJt	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]:S111 	 	DJJt	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   A--A14A1B;;B?B?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 )Nr+   )ro   rp   r   r   rN   r-   r   r*   r2   ro   rp   r   )r-   r-   r-   r   r   r   r/   )r   r-   rj   r   r-   r.   r*   r  r   r.   r   r.   r<   r.   axisr   )r   r4   r   r   r   r   r1   r6   allr   r   r   concatenate)	r   r   r   r7   exp_colr8   r6   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   )      ri   r   r.   rI   rk      r+   r.   r-   )rk   r3  r-   r<         r1  r2  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)r+   r.   r   )r-   r*   rI   rj   )r   rN   r-   r-   )r   r.   rN   r.   rk   r<   r.   r2   r      r   r-   r*   ri   r/   )r   r   r   r   r   r   zerosr   r4   r   r   )r   r   idces	col_level	idx_levelr6   r
  r   rd   r   r7   exp_datacolsr8   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(   r=  ro   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  r+   I)i  r,   IIr'  r   F)dropr@  r   r   r   )r   r^   rc   slicer   r  r   r4   r1   r0   	droplevelr   r   )r   r=  r   ind	selectionr7   r8   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 )Nr-   r   r$  r   )r   r   r-   r   r   r   r-   )i1i2i3i4i5i6i7r   )rJ  rK  rL  rM  rN  rO  )r$  rJ  rK  rL  rM  rN  rO  rI  r   )r   r   r\   r   r   r   r   r   r   r7   r8   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        rp   r   r   r$  c2r   )r     r   )r  rU  (   rI  rJ  rK  r   rJ  rI  r   )r   r   r\   r   r1   r`   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 )Nr-   r.   r*   r<   rN   r   r   )r   r   f)m1P3   )r^  A5o   )m2r_  r`  )rc  ra  rb  rW  r   r   rK  rJ  )r   r   r\   r   r   r   rP  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)rg  rf  levc                    d }t          ddt          j        dgg dg dd          }|                    dd	g                                          d
         }|                    d	dg                                          d
         j        }t          j        ||           |                    t          |                    }|                    |          }|	                                j
                                        t          |          k    sJ d }	|d
         	                                j
                                        \  }
}t          |
|          D ]\  }}t          |d
         j        ||f                             d                    } |	|d
         j        |                    |	|d
         j        |                   z   }t          t)          ||                    }||k    sJ d S )Nc                     | | k    rdn| }|dS N 1 valval_strs     r&   castz:TestDataFrameReshape.test_unstack_nan_index1.<locals>.cast      3JJbbCG>>!r(   r+   r,   r   )rY   r>   r?   rM   )za.wzb.xz .yzd.z)rf  rg  jolierf  rg  rt  r   c                 P    t          | t                    rt          |           n| gS r   r  tuplerr   r+   s    r&   <lambda>z>TestDataFrameReshape.test_unstack_nan_index1.<locals>.<lambda>
  !    z!U';';DDGGG! r(   .)r   r   r   r^   r   r   r   r   rr   notnar{   sumrA   nonzerozipsortedr  splitr0   r1   map)r   r   rh  rr  r   r!  r   r  udfmk_listru   r=  r   rV   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 rk  rn  ro  s     r&   rr  zATestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.cast  rs  r(   r   r*   rI   r+   r.   r   r   r,   r?   rY   rM   r<   r>   )C   '   5   H   9   P      r7  r3  r   ;   2   >   r  L   4      r  <   3   r  c                 J    d                     t          |                     S )Nr{  )joinr  rrr  s    r&   ry  zETestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.<lambda>C  s    sxxD!55 r(   r-   r*  c           	      f    d                     t          | j        d d d                             S )Nr{  rN   )r  r  r  r  s    r&   ry  zETestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.<lambda>D  s)    sxxD!&2,(?(?@@ r(   r  r  r   c                 P    t          | t                    rt          |           n| gS r   rv  rx  s    r&   ry  zETestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.<lambda>J  rz  r(   r{  )r   r   r   applyr^   rr   r   r|  r{   r}  rA   r~  r  r  r  r  r0   r1   r  )r   r   rh  r   r   r  r  r  ru   r=  r   rV   r!  r   rr  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aaaabbbbrk   r'  rp   r]   r*   r-   ro   r   r*   r-   r.   r<   rI   ri   rj   r   r   r+   r,   r	  r   )r.   r-   )r   rr   r3   ra   r   r@   r  r^   r   r   r  r  r   r   r   r   )r   r   r!  valsr   r=  r   s          r&   test_unstack_nan_index2z,TestDataFrameReshape.test_unstack_nan_index2R  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
aaaaabbbbbrx   rI   ry   r.   r  r'  r  ro   rp   r*   r   r-   r<   ri   rj   rk   r   r+   r,   r   r   )r   r   r   r   r   r   )rN   r   r-   r.   r*   r<   r	  r   )r-   r.   r*   rI   )r   rr   r   tolistr   r   r@   r  r^   r   r   r   r   r   r1   ra   rK   r   r   )r   rD   r   r!  r  r   r=  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(UrS  Pbg	VZ>)Sn@>]K=?)=()AgrS  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   r-   rN   r  r  r	  r  )r  r  r  r  r  )r   r   r   r   r   r   r-   r.   r*   r<   r  r  )
r   r   r   r   r^   r   r   r   r   rc   )r   r  r   r!  r   r=  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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)r-   r.   r-   r.   r-   r.   z
2014-02-01ri   r   )rz   freqd   r  r.   )r  r  rf  rg  r  z
2014-02-02r  )r-   r  )r*   r  )r-   r  )r<   r  r  re  r  )r   r   r   r   r   r   roundr|   r   r   rc   r^   r   r|  r{   r}  rA   iterrows)r   r   r!  r   r  r  re   s          r&   test_unstack_nan_index5z,TestDataFrameReshape.test_unstack_nan_index5  s   )))!,DDDRYq\\)	**R/66q99	 
 
 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                 N   t          ddd          }t          g dt          j        |ddfg                    }|                                }t          j        ddg          }t          j        |dfg          }t          g d||	          }t          j        ||           d S )
Ni  r-   r  ro   rp   r   r(  )rp   r/   )r   r   r   r\   r   r4   r   r   )r   tr   r7   eidxecolsr8   s          r&   %test_stack_datetime_column_multiIndexz:TestDataFrameReshape.test_stack_datetime_column_multiIndex  s    T1a  |||Z-Cac]O-T-TUUU&f'=>>&Cz22\\\uEEE
fh/////r(   multiindex_columnsr  r(  )r   r-   r.   r<   rX   r   )r.   r*   r<   )r<   r*   r.   r-   r   )r*   r.   r-   r   )r<   r.   r-   r   )r.   r-   r   )r*   r.   r-   )r<   r*   r.   r   rN   c                     t          j        g dddg          }||         }t          t          j        dt          |          z                                dt          |                    |          }|                    |d          }t          |t                    rW|                    |d	          }t          |t                    rt          j        ||           nt          j        ||           t          j        |j                                        |j        j                  |_        |                    |d          }t          |t                    rt          j        ||           d S t          j        ||           d S )
N)rp   r>   )rp   rM   )ro   r?   )r   r>   )r   uUpperLowerr   r*   r   F)r   dropnaT)r   r\   r   r   r   rA   r   r   r  intr
   r   r5   r   r1   to_numpyr`   )r   r  r   full_multiindex
multiindexr   r7   r8   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
 
 
 e44eS!! 	8 xxeDx99H(F++ 8&vx8888%fh777+J!!)9
 
 

 88%866h'' 	4"6844444!&(33333r(   c           	      "   t          j        g dddg          }t          t          j        d                              dd          |g d         	          }|                    d
          }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
        d                   |d<   t          j        ||           d S )Nr  r  r  r   ri   r.   r*   )r   r-   r*   r   Fr  r   r-   rI   r<   )r  r>   r?   rM   r  )r-   r*   r-   r*   r	  rp   r   r   r/   )r   r\   r   r   r   r   r   r   r   ra   r  r   r   )r   r  r   r7   r8   s        r&   test_stack_full_multiIndexz/TestDataFrameReshape.test_stack_full_multiIndex%  s4   $0HHHG$
 
 
 ry||++Aq11?999;UVVV''Va[1a&1bf+6A 4 4 45#||\\\2Wo  
 3*7333
 
 
 !,,RYq\::
fh/////r(   orderedFTlabelsyxzyxyc                 $   t          j        |t          d          |          }t          g dg|          }|                                }t          j        |j        |g          }t          g d|          }t          j
        ||           d S )Nrm   r   r  )r  r3  r4  r   r2   )r|   CategoricalIndexrr   r   r   r   r4   r0   r
   r   r5   )r   r  r  cidxr   r7   r  r8   s           r&   %test_stack_preserve_categorical_dtypez:TestDataFrameReshape.test_stack_preserve_categorical_dtype9  s     "6d5kk7SSS~t444 &$'788,,,d333
vx00000r(   zlabels,datarm   )r  r3  r4  r1  r  r5  zyx)r  r5  r4  r1  r  r3  c                    t          j        |t          |          |          }t          j        ddg|          }t          j        ||g          }t          t          |          g|          }|                    ddg          }t          j        t          |          |          }	t          |t          j        dg|	|g                    }
t          j	        ||
           d S )	Nr  r  v)r  r   r   r-   r2   )
r|   r  r  r   r4   r   r   r
   r   r5   )r   r  r  rd   r  cidx2r  r   r7   s_cidxr8   s              r&   +test_stack_multi_preserve_categorical_dtypez@TestDataFrameReshape.test_stack_multi_preserve_categorical_dtypeH  s     "6fVnngVVV#S#J@@@&e}55t~t4441a&!!$VF^^WEEE$j&=sFE>R&S&STTT
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)r+   r+   r,   r   ro   rp   r(  ro   rp   )r+   r+   r+   r+   r,   r,   r   r   r2   )	r|   r   r   r   r   r4   r
   r   r5   )r   r   r   r7   r0   r8   s         r&   ,test_stack_preserve_categorical_dtype_valueszATestDataFrameReshape.test_stack_preserve_categorical_dtype_values]  s    n11122Ss++,,'Sz(BCCNCCCDDE
 
 
 	vx00000r(   zindex, columnsr  r,   )r   r   r.   r*   c                    t          ||                              d          }|                                }t          j        |j                                                  }t          |                                ||j                  }t          j	        ||           t          j        |j        j                  }t          j        |j                  }t          j        ||           d S )Nr/   r-   )r   fillnar   r   r\   r0   r  r1   r   r   r   asarrayr
  assert_numpy_array_equal)	r   r0   r1   r   r    	new_indexr8   stacked_codesexpected_codess	            r&   )test_stack_multi_columns_non_unique_indexz>TestDataFrameReshape.test_stack_multi_columns_non_unique_indexh  s     UG444;;A>>((***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(   c                 6   t          j        g dddg          }t          t          j        g dd          t          j        g d          d	|
          }|                    |          }|                    t                                        |          }t          |j
        j        gdz  |j        j        gdz  z   |j        
          }t          j        |j        |           t          j        |                    t                    |           d S )N))ro   r   ro   r-   )rp   r-   r+   r,   r   r   r-   NInt64rJ   rU   r  r2   r   r.   )r   r\   r   r|   r   r   r   ra   r   r
   ro   rK   rp   r1   r   r5   r  r   )r   r   r0   r   r7   r8   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 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   r.   r-   r*   rp   ro   r/   r   )r*   r-   r.   r   ))r   ro   )r   rp   )r   ro   )r   rp   r   r*  )r+  r   )r   r4   r   r1   rZ   r\   r0   r   	swaplevel
sort_indexr   r   )r   r   r  r   r8   r7   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'   r9   rG   rg   rv   r   r   r   r   r   r   markparametrizer   r\   r   r   r   r   r   r   r   r  r  r  r   r8  r   r"  r%  r0  r   r>  rC  rG  rQ  rY  rd  rr   r3   r  r   permutationsr  r  r  r  r  r  r  r  r  r  r  r4   r  r  r  rn  r(   r&   r   r      s)       > > >$0 0 0.
. 
. 
.,0 ,0 ,0\"0 "0 "0H0 0 0,0 0 0,0 0 0< 0  0  0D0 0 02 [H |||\\\<<<H&
&444S#J   '
&DDD,  
 ")))+C+C+CDq!f3'''&
&	 	 	 211  		
! !D0 0E! !D0(( (( ((T
 
 
"*
 *
 *
X'
 '
 '
R& & &0 0 04. . .6*1 *1 *1X [RXa[[("(1++&RYq%%%yryBd'C'C'CD	
 + + +.  A A A0 [,+++bfc1-=1~N---1~Q?OP	
 0 0 0" [VsCj%%++%>??0 0 @?00 0 0,K K K0 0 0& [U^^$DEE[UDDqNN33! ! 43 FE!: [U$:I$:;P;P;P$Q$QRR[UDDqNN33[UUEN33;! ;! 43 43 SR;!z/+ /+ /+b+ + +8'5 '5 '5R/ / /.	0 	0 	0 [OOLLLLIIIIIIFFFCCCOOLLLLIIIIIIFFF+	
 4 [Wr1a!Q!Q&@AA4 4 BA5 64@0 0 0( [Y66[XUTT%[['ABB1 1 CB 761 [Y66[T%[[2223T%[[2223	
 1 1  761	1 	1 	1 [\\2:2QFS#J3GHHI\\2:2QFS#J3GHHI\\2:2QFS#J3GHHI	
 C C C [Wq!f--? ? .-?& [Wq%j110 0 210 0 0r(   r   c                     t          g dd          } t          j        g d          | _        |                                 }t          dt          j        dgddt          j        gdt          d	          
          }t          j
        ||           |                     d          }t          g dg ddt          d	          
          }t          j
        ||           d S )Nr   r   rJ   rL   r+   r,   r   rQ   rm   r2   r   rO   )r+   r   r+   )r,   r   r   )r
   r   r\   r0   r   r   r   r   rr   r   r   )rd   r7   r8   s      r&   test_unstack_fill_frame_objectr    s    &&&h777D'888 DJ
 \\^^FBFC S"&'9::$u++  H &(+++ \\S\))FooOOO44DKK  H &(+++++r(   c            
         t          t          j        dd          gdgdgdgdg d          } |                     ddg                                          }t          t          j        dd          dggt          dgd	          t          d
dgdggddgddggd dg                    }t          j        ||           d S )Nz2017-08-27 01:00:00.709949+0000UTC)tzr+   r,   r   )	timestampr+   r,   r   r   r   r	  r   r-   r	  r/   )	r   r|   r   r^   r   r   r   r   r   )r   r7   r8   s      r&   "test_unstack_timezone_aware_valuesr
    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  ro   r   r2   rX   )r   r   r   r  )r   r   r   r
   r   r   r5   )tsr   r7   r8   s       r&    test_stack_timezone_aware_valuesr    s    	JJCU	V	V	VB	C9OOO	4	4	4BXXZZF
3% 8III@VWWW  H 68,,,,,r(   r  TFc                 d   t          j        g t           j                  t          j        g t           j                  g}t          t           j        t          |g g g                    }t          t           j                                      |           }t          j	        ||           d S )NrJ   r  )rK   r0   r  )
r   r   rb   r
   rt   r   r   r   r   r5   )r  r6   r8   r7   s       r&   test_stack_empty_framer    s     hr***BHRrx,H,H,HIFBJjrSUh.W.W.WXXXHRZ(((..f.==F68,,,,,r(   rP   c                     t          t          j                                      |                               |          }t          t          j                  }t          j        ||           d S )NrJ   r  rO   )r   r   rb   r   r   r   r   )r  rP   r7   r8   s       r&   test_stack_unstack_empty_framer    sh    
 	!!!''v'66>>*>UU  rx(((H&(+++++r(   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   rJ   )r   r   r   r
   r   rb   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      #@rk   FTr   femalemale)rZ   scoreemployedkidsgender)rZ   r  r   r!  r!  rO   r  r   )r  rS  rS  rS  )rS  rS  rS  g       @rZ   r   ))r  r  Fr   )r  r  Tr   )r  r  Fr   )r  r  Tr   )Nr!  r  r   r   r/   )r   r^   r   r   r   r\   r   r   )r   r8   r7   s      r&   test_unstacking_multi_index_dfr"    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                  @   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 )Nr=   )r?   rM   r+   r   r-   r-   r-   r-   r   r   r?   rM   r   )r   r>   )r   r?   r-   r/   )r   r4   r   r   r   r\   r   r   )r1   r   r7   new_columnsr  r8   s         r&   2test_stack_positional_level_duplicate_column_namesr&    s    %z:&>sCjQQQG	LLL>7	3	3	3BXXa[[Fc
---K&(';D#;OOOI1a&1a&)KPPPH&(+++++r(   c                    t          j        t          d          g dg          }t          t          j                            d          t          j                            d                              t          j                  t          j                            d          t          j                            d          d|          | s%t          d j
        j        D                       sJ                                 }t          j        fdt          d          D             t          d          d	
          }t          j        ||           d S )NrI   r'  r5  r(  r2   c              3   0   K   | ]}|j         j         V  d S r   )mgr_locsis_slice_liker   r>   s     r&   	<genexpr>z5test_unstack_non_slice_like_blocks.<locals>.<genexpr>3  s*      HHAqz//HHHHHHr(   c                 D    g | ]}|                                          S rn  )r   )r   nr   s     r&   r   z6test_unstack_non_slice_like_blocks.<locals>.<listcomp>7  s%    <<<a"Q%--//<<<r(   r<   r-   )keysr+  )r   r4   r3   r   r   r   r   ra   rb   anyrB   rC   r   r|   concatr   r   )rD   r  rF   r8   r   s       @r&   "test_unstack_non_slice_like_blocksr2  %  s+    
	 %((OOO!<	=	=B	yr""yr""))"(33yr""yr""		
 	
 
 
 
B  IHHHHHHHHHH
**,,Cy<<<<588<<<588RSTTTH#x(((((r(   c                      e Zd Zd Zej                            dg dg dgg ddg dfg dg d	gg d
dg dfg dg dgg d
dg dfg          d             Zd Zd Z	ej                            d e
d          g d eddgg dg ej         ej        d                              d          d           ej         ej        d          d          g          g e
d          g d eddgddgg ej         ej        d                              d          d           ej        g dd          g          g ej        d          g d eddgddgddgg ej         ej        d                              d          d           ej        g dg d            ej        g dd          g          gg          d!             Zd" Zd# Zd$ Zd% Zej                            d&d'd(g          d)             Zd* Zd+ Zd, Zd- Zd. Zd/ Zd0 Zd1 Zd2 Zd3 Z d4 Z!d5 Z"ej        j#        d6             Z$ej                            d7e%j&        '                    d8 d9D                                 ej                            d: e(d                    d;                         Z)d< Z*d= Z+d> Z,d? Z-d@ Z.dA Z/dB Z0dC Z1dD Z2dE Z3dF Z4dG Z5dH Z6dS )ITestStackUnstackMultiLevelc                    |}|                                 }|                                  |                    t                                                      |                    t          j                                                    d S r   )r   ra   r  r   rs   r   /multiindex_year_month_day_dataframe_random_dataymdr"   s       r&   test_unstackz'TestStackUnstackMultiLevel.test_unstack<  sl    =KKMM	 	

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

28$$&&&&&r(   z5result_rows,result_columns,index_product,expected_row)r-   r-   NN      >@N)r.   r.   NNr:  N)ix1ix2col1col2col3col4r.   )NNr:  N)r-   r-   NNr:  )r.   r.   NNr:  )r;  r<  r=  r>  r?  )NNr:  )r.   NNNr:  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   r;  r<  r-   r.   r   r   r   )	r   r^   r  r   r   r4   r   r   r   )r   result_rowsresult_columnsindex_productexpected_rowr7   r8   s          r&   test_unstack_partialz/TestStackUnstackMultiLevel.test_unstack_partialI  s    < ;???IIEN
 
 QqS!))%00N+#m_5dE]   %(((
 
 
 	fh/////r(   c                    t          j        g d          }t          t          j                            d          |          }|                    ddg          }|                    dd          }t          j	        ||           d S )N))r   r   r   )r   r   r   )r-   r  r-   )r-   quxr-   r<   r2   r-   r.   r,  r+  how)
r   r\   r
   r   r   r   r   r  r   r   )r   r0   rf   r"   r8   s        r&   &test_unstack_multiple_no_empty_columnszATestStackUnstackMultiLevel.test_unstack_multiple_no_empty_columnst  s    &HHH
 
 29??1%%U333IIq!f%%	###66
i22222r(   c                    |}|                                 }|                                }t          j        ||           |                    d          }|                     d          }|                                }t          j        |                    d          |           |d d d         }|                     d          }|                                                    dd          }t          j        |                    d          |           |                    dd          }|                     d                              ddd          }|                    d                              dd          }t          j        |                    d          |           |                                 }|                    d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         }|                                                                }|                                }	t          j        ||	                    |j	                             |                     d                              d
          }|                     d                              d          }t          j
        ||           d S )Nr.   r   r   rN   r-   r*  F)r+  	ascendingr*   r   )r   r   r   r   r  r  rc   r5   reindexr0   assert_equal)
r   r7  r8  r"   	restackedunlexsortedr7   r8   r    ymd_stackeds
             r&   
test_stackz%TestStackUnstackMultiLevel.test_stack  sX   = KKMM	OO%%	
i---nn1n--''**	OO%%	
i222;;SAAA!$$B$'''**	OO%%//155	
i222;;SAAA!++Aq11''**44Q4BB	OOA&&00A66	
i222;;SAAA KKMM	((a5(AA	OO%%	
i--- KKNN**1--	##;;==
fh///##;;q>>
fh///##99;;&&q))11!44
fh/// KKNN&qqq##A#v.	//##))++iikk
w(;(;GM(J(JKKK Q%%b));;q>>''**
)))))r(   zidx, columns, exp_idxababr  r+   r,   r*   r<   r  )r  r  r  r  r  )r   r-   r   ))r+   r.   )r,   r-   )r+   r-   )r,   r.   r-   )r-   r   r-   )r*   ri   r*   c                 t   t          t          j        d                              dd          ||          }|                                }t          t          j        d          |          }t          j        ||           |j        j	        du sJ |j        |j        }}t          j
        ||           d S )Nr4  r<   r*   r/   r2   F)r   r   r   r   r   r
   r   r5   r0   	is_uniqueassert_index_equal)	r   r   r1   exp_idxr   r7   r8   liris	            r&   test_stack_duplicate_indexz5TestStackUnstackMultiLevel.test_stack_duplicate_index  s    L IbMM!!!Q''
 
 

 ")B--w777
vx000|%....x~B
b"%%%%%r(   c                     d}t          j        t          |                                        g d          }|                    d          }|                                }t          j        ||           d S )Na  day,time,smoker,sum,len
Fri,Dinner,No,8.25,3.
Fri,Dinner,Yes,27.03,9
Fri,Lunch,No,3.0,1
Fri,Lunch,Yes,13.68,6
Sat,Dinner,No,139.63,45
Sat,Dinner,Yes,120.77,42
Sun,Dinner,No,180.57,57
Sun,Dinner,Yes,66.82,19
Thu,Dinner,No,3.0,1
Thu,Lunch,No,117.32,44
Thu,Lunch,Yes,51.51,17)daytimesmokerr.   )r|   read_csvr   r^   r   r   r   r   )r   rd   r   r7   reconss        r&   test_unstack_odd_failurez3TestStackUnstackMultiLevel.test_unstack_odd_failure  sl     [$((223L3L3LMM A
fb)))))r(   c                 V   |}|j         }d|d<   |                    dd          }|                                }|d                                                                         }t          j        |d         |d           |j        J |d         j        t          j        k    sJ d S )Nr   )r   fourr-   )r   r+  Fr   r   )	r   r  r   r   r5   rZ   rK   r   float_)r    multiindex_dataframe_random_dataframer   r    r7   s         r&   test_stack_mixed_dtypez1TestStackUnstackMultiLevel.test_stack_mixed_dtype  s    0W!=]]]++((**E""--//
wu~v5IIII{"""u~#ry000000r(   c           	         t          g dg dg dg dt          j        d          d          }|                    g d                              t
                    }|                                }|                                }t          j	        ||
                    |j                                      t                               d S )N)naiverj  rj  activerk  rk  )r+   r,   r,   r,   r+   r+   )r-   r.   r*   r<   r-   r*   )hirl  byerm  rm  peaceg      @)r   r   barcoder  extra)r   r   ro  r  )r   r   r   groupbyr  rA   r   r   r   r5   rN  r0   ra   r]   )r   r   r7   r"   rP  s        r&   test_unstack_bugz+TestStackUnstackMultiLevel.test_unstack_bug  s    RRR555---???3 
 
 <<<==CCCHHNN$$	OO%%	
y&..*I*I*P*PQV*W*WXXXXXr(   c                     |}|                                 }|j        j        dk    sJ |j        j        ddgk    sJ |                                }|j        j        |j        j        k    sJ d S )Nr  r   r  )r   r0   rZ   r1   r`   r   )r   rf  rg  r"   rP  s        r&   !test_stack_unstack_preserve_namesz<TestStackUnstackMultiLevel.test_stack_unstack_preserve_names  sv    0MMOO	#w.... &5(*;;;;;OO%%	$(9999999r(   methodr   r   c                    |}|j         d         }t          j        t          d          5   t	          ||          d           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           d d d            d S # 1 swxY w Y   d S d S )Nr   zdoes not match index namer   mistaker   r   )rc   r   r   KeyErrorgetattrr  )r   ru  rf  rg  r   rf   s         r&   #test_stack_unstack_wrong_level_namez>TestStackUnstackMultiLevel.test_stack_unstack_wrong_level_name'  sX   
 1 Yu]8+FGGG 	+ 	+GB	***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ Y1Ax/JKKK . ."6""9---. . . . . . . . . . . . . . . . . . s#   AAAB55B9<B9c                     |}|                     d          }|                     d          }t          j        ||           d S )Nr  r-   r   r   )r   rf  rg  r7   r8   s        r&   test_unstack_level_namez2TestStackUnstackMultiLevel.test_unstack_level_name:  sD    0x((==q=))
fh/////r(   c                 R   |}|                     d          }|                    d          }|                                                     d          }t          j        ||           |                    d          }|                                }t          j        ||           d S )Nr  r   r   )r   r   r   r   r5   )r   rf  rg  r"   r7   r8   s         r&   test_stack_level_namez0TestStackUnstackMultiLevel.test_stack_level_nameA  s    0MM(++	''==??((++
fh///U##;;==
vx00000r(   c                 :   |}|                     ddg          }|                     d                               d          }t          j        ||           |j        j        |j        j        k    sJ |d         }|                     ddg          }t          j        ||d                    |                    ddg          }|                    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monthro   r   r-   r.   r   r,  rI  )r   r   r   r1   r`   r   r  r  r0   r  rc   )r   r7  r8  r"   r8   rf   s_unstackedrP  s           r&   test_stack_unstack_multiplez6TestStackUnstackMultiLevel.test_stack_unstack_multipleM  s    >KK 122	;;v&&..w77
i222 &(*:*@@@@@ Hii 122
k8C=999OOVW$566	''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   r6  s       r&   test_stack_names_and_numbersz7TestStackUnstackMultiLevel.test_stack_names_and_numbersl  s     >KK 122	 ]:-CDDD 	* 	*OOQL)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   AA!Ac                 b   |}|                     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   r.   r*   znot a valid level numberr\  r[  )r   r   r   
IndexErrorr   r6  s       r&   !test_stack_multiple_out_of_boundsz<TestStackUnstackMultiLevel.test_stack_multiple_out_of_boundsw  s0    >KK 122	]:->??? 	$ 	$OOQF###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$]:-GHHH 	& 	&OORH%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&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  rZ   ro   rp   r*   strr   r-   r.   r*   r<   rI   ri   r2   r-   r   r   )r  r  r  )r-   r*   rI   )r.   r<   ri   r  r/   period1)2013-122013-112013-102013-092013-082013-07period2)r  r  r  r  r  r  r.   r<   ri   rI   )r|   PeriodIndexr   r   r   r
   r   r   r1   rZ   r   r   r   r   r   )r   idx1idx2valuer   rf   result1result2result3e_idxr8   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  )ri   rI   r<   r*   r.   r-   r  r2   r-   r   r   r  r  )r  r  r  r  r  r  zA A A B B B)rI   r-   ri   r.   ri   r-   )r<   r.   r*   r*   rI   r<   r/   )r  r  r  r  )r  r  r  zA A B B)rI   r<   r.   r*   )r-   r.   ri   rI   )ri   r*   r-   r<   )	r|   r  r   r   r   r   r  r   r   )r   r  r  r  r   r   r  r  r  e_1e_2r  r8   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                 L   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	          }t          ||||d
          }|                    ddg          }d|j        _        |	                    d          }t          j        t          d          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 )Nr-   r*   r.   r+   r,   )z
2013-01-03z
2013-01-04z
2013-01-05r   r  ri   )IDNAMEDATEVAR1r  r  ParamszCould not convertr   zW-THUT)numeric_onlyr  )r|   to_datetimer   r   randintr   r^   r1   rZ   r   r   r   r   resamplemeanr   rc   r   r   )r   id_colrZ   datevar1r   multiunstdownr   r   s              r&   test_stack_multiple_bugz2TestStackUnstackMultiLevel.test_stack_multiple_bug  s   #'qcAg&	seai(~HHH1LMMy  C++fdD$OOPPfd^,,%}}T""]9,?@@@ 	* 	*MM'""'')))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*}}W%%***==ZZXaaa&k"++G4499;;AA$GG"

b"%%%%%s   <(C00C47C4c                    t          ddgddgddgd          }|                    ddg          }|                                                    d	
          }t	          |          t	          |                                          k    sJ |                                                    d
          }t          j        ||                                           d S )Na1a2b1b2r-   r'  ro   rp   Fr  T)r   r^   r   r   rA   r  r   r   )r   r   r    s      r&   test_stack_dropnaz,TestStackUnstackMultiLevel.test_stack_dropna  s    dD\tAq6JJKK\\3*%%**,,$$E$227||c'.."2"2333333**,,$$D$11
gw~~'7'788888r(   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   r-   r-   r-   r-   )r   r   r-   r-   r   r   r-   r-   )r   r-   r   r-   r   r-   r   r-   r  r  r/   r   r   r   r,   r   )r   r0   r`   r1   r   rX  s     r&   "test_unstack_multiple_hierarchicalz=TestStackUnstackMultiLevel.test_unstack_multiple_hierarchical  s    (((((((((
 "\\<<<0
 
 
 ):
 	

C:r(   c           
         d}t          t          j                            d|          t          j                            d|          t          j                            dd|          t          j                            dd|          t          j                            d	|          t          j                            |          d
          }|                    g d          }|                    d           d S )N  r  )sizei,  irj   i   i  )ro   rp   r   r   r   r   )ro   rp   r   r   r   r   )r   r   r   r  r   r^   r   )r   NUM_ROWSr   idfs       r&   test_unstack_sparse_keyspacez7TestStackUnstackMultiLevel.test_unstack_sparse_keyspace&  s     Y&&s&::Y&&s&::Y&&r18&<<Y&&sBX&>>Y&&t(&;;Y__X.. 	
 	
 ll44455 	Cr(   c                 R   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   r-   r(  r  r)  r<   r.   r2   )r   r   r   r   r   r   rA   r1   r   r   r   )r   r6   r
  r0   r   r7   ra  s          r&   test_unstack_unobserved_keysz7TestStackUnstackMultiLevel.test_unstack_unobserved_keys;  s    a&,,,'|||,65))ryq!,,E:::6>""a''''
fb)))))r(   c                 j    G d dt           j                  }|                                5 }|                    t           d|           t	          t
          j                            dd          t          j        d          t          j        d          g          }d}t          j
        t          |          5  t          j        t          d	          5  |                                 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )
Nc                         e Zd Zd fdZ xZS )aTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32.<locals>.MockUnstackerreturnNc                 T     t                      j        |i | t          d          )NDon't compute final result.)super__init__	Exception)r   argskwargs	__class__s      r&   r  zjTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32.<locals>.MockUnstacker.__init__P  s.      $1&111 =>>>r(   )r  N)r  r  r   r  __classcell__)r  s   @r&   MockUnstackerr  O  s=        ? ? ? ? ? ? ? ? ? ?r(   r  
_Unstackeri   r.   r2   z$The following operation may generater   r  )reshape_libr  contextsetattrr   r   r   r   r   r   assert_produces_warningr   r   r   r  r   )r   monkeypatchr  mr   r   s         r&   /test_unstack_number_of_levels_larger_than_int32zJTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32J  s   
	? 	? 	? 	? 	?K2 	? 	? 	?   "" 		!aIIk<???	q))y''5)9)9:  B 9C+,>cJJJ ! !]94QRRR ! !JJLLL! ! ! ! ! ! ! ! ! ! ! ! ! ! !! ! ! ! ! ! ! ! ! ! ! ! ! ! !		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		! 		!sZ   BD(<DC9-D9C==D C=DD(D	D(D	D((D,/D,r6   c              #   l   K   | ]/}t          j        t          j        g d |          d          V  0dS )rX   r.   r   N)r   r   r  )r   widths     r&   r,  z$TestStackUnstackMultiLevel.<genexpr>b  sW       &
 &
 i4YYYFFqQQQ&
 &
 &
 &
 &
 &
r(   r   	stack_levc                     t          |g dg dg          }t          |t          d          g                                        t	          fdj        D                       sJ d S )Nr  r  r  r<   )r1   rd   c              3      K   | ]?}j         D ]5}j        ||f         j        ||         f|d z
           f         k    V  6@dS )r-   N)r1   rc   )r   rowr   r   
df_stackedr  s      r&   r,  zSTestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels.<locals>.<genexpr>n  s       
 
 z	
 
  F38~sC	N3SY5GGHI
 
 
 
 
 
 
r(   )r   r   r3   r   r,  r0   )r   r6   r  r1   r   r  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XXi((
 
 
 
 
 
 
 x
 
 
 
 
 	
 	
 	
 	
 	
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)ro   r   rp   )rp   ro   r   r*   r  rI   rN   )r1   r0   rd   c              3      K   | ]O}j         D ]E}j        ||f                             d           j        ||d          f|d         f         k    V  FPdS r  )r1   rc   r   )r   r  r   r   s      r&   r,  z]TestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels_multi_row.<locals>.<genexpr>  s       
 
z
 
  F38c!fs1v0E FF
 
 
 
 
 
 
r(   )r   r   r   r3   tiler   r   rA   r   r,  r0   )r   r  r   s     @r&   /test_stack_order_with_unsorted_levels_multi_rowzJTestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels_multi_rowu  s     #OO___59U1XXq))27588Q+?+?@
 
 
 eAhhRYq3r77{-C-C-K-KAr-R-R
 
 
  
 
 
 
x
 
 
 
 
 	
 	
 	
 	
 	
r(   c           	      d   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 )NrI   c                     g | ]}d | S )r,   rn  r+  s     r&   r   zVTestStackUnstackMultiLevel.test_stack_unstack_unordered_multiindex.<locals>.<listcomp>      )))QQ)))r(   c                     g | ]}d | S rx  rn  r+  s     r&   r   zVTestStackUnstackMultiLevel.test_stack_unstack_unordered_multiindex.<locals>.<listcomp>  r  r(   r,   r+   r   r  r>   r-   r*  r  a0b0r  r  r  r  a3b3a4b4r  )r+   r>   )r,   r>   r   r/   )r   r   vstackr   r   r1   rZ   r|   r1  r`   rN  r  r   r   r   r\   r   r   )r   r{   rd   r   second_level_dictmulti_level_dfr7   r8   s           r&   'test_stack_unstack_unordered_multiindexzBTestStackUnstackMultiLevel.test_stack_unstack_unordered_multiindex  sa   1y))&)))))&)))
 
 tvSz222!
 "I#41===(0'':$##F>+A$B$B#KK7H-..667JKKD\D$<$d|dD\R!//*Z((0C  
 
 
 	fh/////r(   c                     |}d|d<   d|d<   |                     d          }|d         j        t          j        k    sJ |d         j        t          j        k    sJ |d         j        t          j        k    sJ d S )	Nr   r   r.   r   r  r  )r   r-   )r   r-   )r   rK   r   rt   object_r6  s       r&   test_unstack_preserve_typesz6TestStackUnstackMultiLevel.test_unstack_preserve_types  s     >CCKK((	 &"*4444 &"*4444 &"*444444r(   c                 f   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  r.   rk   r   r-   r  r  r2   )r  r.   r<   )r   r  r   r   r   r
   r   r   r   r   r5   rN  r0   )r   r
  r   r0   rf   r7   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'''' ,,..
q'//!'":":;;; F8ugk)9Q<<&&s++,w{:
 
 

 29T??%0001|x'''' 7Q;1a&)UGaK77Q;")A,,"5"5c":":!;;ugkI
 
 

 29T??%0001|x''''''r(   c           	      Z   t          g dg ddgdz  d                              ddg          }d|d	<   |st          |j        j                  d
k    sJ |                    d          }|d                             d          |d<   t          g dt          j        dddggt          ddgdd          t          j        g dd dg                    }|r<|d                             d          |d<   |d                             d          |d<   t          j        ||           d S )N)ro   ro   rp   )cacbr  r  r*   )r+   r,   r  r+   r,   r-   is_r.   r  r  r   )      $@r  r   r   r  rS  r   ro   rp   r   )rK   rZ   ))r  r  r  r  r  r  r  r   r/   r	  rb   r
  )r   r^   rA   rB   rC   r   r  r   r   r   r   r\   ra   r   r   )r   rD   r   r7   r8   s        r&   +test_unstack_with_missing_int_cast_to_floatzFTestStackUnstackMultiLevel.test_unstack_with_missing_int_cast_to_float  sl   $__'''TAX 
 
 )S#J

 	 5	" 	,rw~&&!++++C &} 5 < <Q ? ?}###bfdC%=>c
(===*HHHSk  
 
 
  	N$,[$9$@$@$I$IH[!&.}&=&D&DW&M&MH]#
fh/////r(   c                    t          g dg dg dg dd          }|                    g d          }g d}|j                            |d          |_        |j                            |d	          |_        |                    d
          d                                         j        }t          g dg dgg dg dgdd	g          }t          j        ||           d S )Nr  )r*   r<   r-   r.   r$  )L1L2L3r>   )r  r  r  )n1n2n3Nr  )r6   r   r  r  )r>   r-   r(  )r.   r*   r   r-   r	  )	r   r^   r0   
set_levelsr   r  r   r   rW  )r   r   
new_levelsr7   r8   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          }t          dt          j        t          j        gt          j        ddgt          j        ddggt          g d          t          g d          	          }t          j	        ||           d S )
Nr-   rI   ))r   NN)r   r.   r   )r   r.   r-   )r   r*   r   )r   r*   r-   r   r.   rS  )r   N)r   r   r   r-   )r  )r   r.   )r   r*   r/   )
r   r   r8  r   r\   r   r   r   r   r   rP  s       r&   $test_stack_nan_in_multiindex_columnsz?TestStackUnstackMultiLevel.test_stack_nan_in_multiindex_columns	  s    HaV*   
 
 
 !2626"RVS#$6c8JK3334455566
 
 

 	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          }t          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 )Nro   r.   rp   rT  ccddrk   r<   r   r-   r   r*   ri   rI   rj   aabbaabbcdcdcdcdr   )r   r   r|   r   rr   r   r   r   r   r   r   r   r   )r   r  r   r7   r8   s        r&   "test_multi_level_stack_categoricalz=TestStackUnstackMultiLevel.test_multi_level_stack_categorical  sl   %	SEAI%tF||,,tF||,,
 
 ry||++Aq114@@@1a&!!BFBFBFBF	 #J(C!GqcAg%N4
#3#344N4
#3#344 
 
 
( 	fh/////r(   c           
      Z   t          t          j        d                              dd          t	          j        dt          j        fdgddg          t          dd	gd
          t          j                  }|	                                }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t          j        fdd	t          j        fdgd
dg                    }t          j        ||           d S )Nr<   r.   ro   rq   r  r  r   r   r-   Numr   r1   r0   rK   rS  g       @r;   rp   )r   r,   )r-   r,   r   )r   r   r   r   r   r\   r   r   rt   r   r   r   )r   df_nanr7   r8   s       r&   test_stack_nan_levelz/TestStackUnstackMultiLevel.test_stack_nan_level@  s    IaLL  A&&*rv
+GW3E   AU+++*
 
 
 26]RVQK#rvF3*7333(RVhBFX>ugFV  
 
 
 	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 )Nro   r   r-   r   r+   r,   r2   r   r  )r   r   )r   r-   )
r   r4   r   r|   r   r   r\   r1   r   r   r   s        r&    test_unstack_categorical_columnsz;TestStackUnstackMultiLevel.test_unstack_categorical_columnsT  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                 J   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)rd   r0   r1   r/  r0  r   i'  )A0r-  r-   r*  )r   r4   rr   r3   rA   r   r   r1   rD  rc   r   r  r   r5   )	r   r.  r/  r0  r   VDFr7   r8   s	            r&   test_stack_unsortedz.TestStackUnstackMultiLevel.test_stack_unsortedc  s   enTl###$c3_<Q<Q<QRRRs2ww  AR';;;ZZ''Z))!,,
#'qqq- 5%.))4466==a=((..u~>>IIKK
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                                        d          }t          j        ||           d S )N5451154515r  t_meanstationelementr   r   r^  r   )r     r     )r  r=  r      )i1     rb  r>  r!  r   )r   r4   r   r   r   r   r|   
Int64Dtyper   ra   rb   r   r   r1   Float64Dtyper   )r   r1   r0   arrr   r7   r8   s          r&   test_stack_nullable_dtypez4TestStackUnstackMultiLevel.test_stack_nullable_dtypeu  sg   )w#x1)Y9O
 
 
 iiif---h***,=,=,=?S?S?STUUsG5PPP)$$99RX&&,,Y77>>r}OO
fh/// rz!}-44R_5F5FGG2:a=)$$ 99V$$**955
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 )Nr+   r-   r.   redblue)r>   r   r?   r   r  r2   r>   )r  r+   )r-   rE  )r.   rF  r   r?   r   )r   r   r   r   r\   r   r   )r   arraysr   r   r7   r8   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(   )7r  r  r   r9  r   r  r  rF  rK  rS  rr   r   r   r  r   r   r\   r[  rb  rh  rr  rt  rz  r|  r~  r  r  r  r  r  r  r  r  r  r  slowr  r   chainfrom_iterabler3   r  r  r  r  r  r  r  r  r  r#  r%  r5  rC  rH  rn  r(   r&   r4  r4  ;  s       ' ' ' [? 0//1O1O1OP>>>(((	 *))+C+C+CD666"""	 *))+F+F+FG666"""		
 .0 0/ .0(	3 	3 	36* 6* 6*p [ V%%%
 #J(=(=(=>		! 3 3A 6 6::		!a00  
 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--  ) 	
# #H& &I# #H&* * *,1 1 1Y Y Y": : : [X';<<. . =<.$0 0 0
1 
1 
1M M M>	* 	* 	*& & &C3 C3 C3J-1 -1 -1^& & &&	9 	9 	9     ** * * [! ! !* [%% &
 &
&
 &
 &
 	
 	
  [[%%((33
 
 43 

 
 
"0 0 025 5 5#( #( #(J0 0 0@0 0 000 0 0,0 0 0B0 0 0(0 0 01 1 1$0 0 000 0 0 0 0r(   r4  )%r   ior   r   numpyr   r   pandas.errorsr   pandasr|   r   r   r   r	   r
   r   r   pandas._testing_testingr   pandas.core.reshaper   r  r   r  r
  r  r  r  r  r  r  r"  r&  r2  r4  rn  r(   r&   <module>rS     sC                        , , , , , ,                            6 6 6 6 6 6I0 I0 I0 I0 I0 I0 I0 I0X$, , ,,, , ,0	- 	- 	- D%=11- - 21- D%=11ay11, , 21 21,) ) ), , ,>
, 
, 
,) ) ),]0 ]0 ]0 ]0 ]0 ]0 ]0 ]0 ]0 ]0r(   