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

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

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

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

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

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

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

 	IIQFI>	
r   c           	      l   t        ddgt        j                  ddgddgg      dg      }|j                         }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                  ||       y )	NFr3   r4   r   lcolr7   rQ   )
r   r   from_arraysr#   r   arrayrH   objectr$   r%   )r'   r)   rsxps       r   test_unstack_boolz&TestDataFrameReshape.test_unstack_bool2  s    EN((3*sCj)ABG

 ZZ\HHubffo7vF***UENS#J+G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|      }|j                  ddg      j                  d|      }t        ddgddggg dg dgddg      }t	        t        j                  dt
        j                  gt
        j                  dgdt
        j                  gt
        j                  dggt
        j                        |t        ddgd            }t        j                  ||       y )Nr   r   onetwor3   r4   r   r   r5   r5   r   r5   r   r5   )r5   r   r5   r   )firstsecondthirdr>   codesrk   r   r:   r5   r6   r   r  r  rQ   r  r   r7   )r   r
   r#   r"   r   r   r  rH   r   r   r$   r%   )r'   r   mirr   r?   expected_mir@   s          r   test_unstack_level_bindingz/TestDataFrameReshape.test_unstack_level_binding@  s    
 ENUENS#J?|<.

 1BAq6"(((F ENUEN3.H%
 HHRVVrvvqkArvv;DBJJ 3*73
 	fh/r   c                    |j                         }t        |t              sJ |j                         j                  }t	        j
                  ||       t        ddt        j                  gddt        j                  gd      }t        g d      |_
        |j                         }t        ddgg dgg d	g d
g      }t        ddt        j                  ddt        j                  g|      }t	        j                  ||       |j                         }t        d      D ]  }|j                         } t	        j
                  ||       y )Nr5   r6   rC   rD   rE   r   rF   rG   )r   r   r   r5   r5   r5   )r   r5   r6   r   r5   r6   r>   r  r2   r:   )r#   
isinstancer
   r&   r$   r%   r   r   rH   r   r8   r   r=   r   r;   )	r'   r(   ro   undor?   midxr@   old_data_s	            r   test_unstack_to_seriesz+TestDataFrameReshape.test_unstack_to_series]  s   ""$$'''||~
dK0 1bff~S!RVV4DEF?+
#J0%'9:
 1aArvv6dC
vx0 99;q 	"A<<>D	"
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                  ||       |j                  d
dg      }|j                  d      }|j                  }t        t	        j
                  d      gdz  t        j                  g dg dgd      	      }t        j                  ||       |j                  d
dg      }d|d<   |j                  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<   |j                  d      }|j                  }|r$t        j                  t        j                        nt	        j
                  d      }t        t	        j
                  d      gdz  |gdz  z   t        j                  g dg dgd      	      }t        j                  ||       y )N)r5   r5   r2   rD   r5   r6   r2   rD   )r6   r5   r2   rD   )r6   r6   r2   rD   ABCDr   rm   rD   r:   r{   r|   )r   r   r   r   )r5   r6   r5   r6   )Nr|   r   rC   r   r   r6   r   r   )na_valuer  )r   r~   dtypesr
   r   rR   r$   r=   ri   r#   r   r  r   StringDtyperH   )	r'   using_infer_stringr   r)   r?   r@   rL   r   rR   s	            r   test_unstack_dtypesz(TestDataFrameReshape.test_unstack_dtypesx  s   lL,GtT&\2288G,-1fF
vx0 llC:&kk#XXg!#((%|4K
 	vx0 llC:&Ckk#XXi !A%'):(;a(??((%|4K
 	vx0Ckk# " NNBFF+(# 	
 XXi !A%!3((%|4K
 	vx0r   zc, drP   f8rQ   
   c           	         t        dgdz  ||t        dd      d      }|j                  d d j                  d      }|j	                  d	d
g      }|d   j                  d      |d<   |j                  d d j                  d      }|j	                  d	d
g      j                  d      }|d   j                  d      |d<   |j                  dk(  sJ t        j                  ||       y )Nr3   rP   r   r   )r{   r   r   r|   r2   T)deepr{   r|   r   rm   r   )r   r3   )r2   r6   )
r   r   ilocr   ri   rl   r#   r!   r$   r%   )r'   r   r   r)   rightlefts         r   test_unstack_dtypes_mixed_datez3TestDataFrameReshape.test_unstack_dtypes_mixed_date  s     UQYa8	
   d +\\3*%S'..)3wwr{""1%c
+33A6!*-44W=jzzV###
dE*r   c                 x   t        j                  ddgddg      }t        ddg|      }d}t        j                  t
        |	      5  |j                  d       d d d        t        j                  t
        |	      5  |j                  j                  d|
       d d d        y # 1 sw Y   KxY w# 1 sw Y   y xY w)NrX   )r   r   c1r   r5   r6   r:   z5The name c1 occurs multiple times, use a level numberr\   r   )	r   rf   r   r   r   r   r#   r&   r"   )r'   r   r   r)   rp   s        r   #test_unstack_non_unique_index_namesz8TestDataFrameReshape.test_unstack_non_unique_index_names  s     $$j*%=dD\R1vS)E]]:S1 	JJt	 ]]:S1 	8DDJJt,J7	8 	8	 		8 	8s   B$=B0$B-0B9c                    t        j                  dgg dg      d d }t        ddggdz  |      }|j                         }t        j                  t	        d      g d	g      }t        g d
gdg|      }t        j                  ||       |j                  j                  d   |j                  d   k(  j                         sJ t	        d      t	        d      g}g dg dg}t        ||      }t        j                  d      j                  dd      }t        t        j                  ||dz   g      |      }|j                         }t        t        j                  |dz  |dz  dz   gd      |      }t        j                  ||       |j                  j                  d   |j                  d   k(  j                         sJ y )Nr3   )r{   r|   r   r   rU   r5   r   r2   r:   r6   r{   r|   r   )r5   r5   r5   r   r   r   r7   rD   r
  r   r6   r   r6   axisr   )r   r<   r   r#   r;   r$   r%   r9   r>   allr   r   r   concatenate)	r'   r   r)   r?   exp_colr@   r>   r  blocks	            r   test_unstack_unused_levelsz/TestDataFrameReshape.test_unstack_unused_levels  s   %%u.B&CDSbIAx!|3/))58_*EF01#P
fh/%%a(CJJqM9>>@@@ (E!H%|,'		!$$Q*r~~ueai&89ENNEAIuqy1}5A>
 	fh/%%a(CJJqM9>>@@@r   z"level, idces, col_level, idx_levelr   )      ru   r   r6   rP   rw      r3   r6   r5   )rw   r;  r5   rD         r9  r:  c                    g dg dg}g dg dg}t        ||      }t        j                  d      }t        |j	                  dd      |      }	|	j                  |	      }
t        j                  d
      t        j                  z  }|||<   t        j                  t        d      |g      }t        |j	                  dd      ||      }t        j                  |
|       y )N)r3   r6   r   )r5   r2   rP   rv   )r   rU   r5   r5   )r   r6   rU   r6   rw   rD   r6   r:   r      r2   ru   r7   )r   r   r   r   r   r#   zerosrH   r<   r;   r$   r%   )r'   r   idces	col_level	idx_levelr>   r  r   ro   r)   r?   exp_datacolsr@   s                 r   )test_unstack_unused_levels_mixed_with_nanz>TestDataFrameReshape.test_unstack_unused_levels_mixed_with_nan  s      ..'yy|t||Aq)5%(88B<"&&(&&a)'<=X--a39dS
fh/r   rF  r{   c                    t        g dg dgg d      }|j                  g dd      }|j                  t        d       t        d       df|f   }|j	                         }|j
                  dg   |   }t        j                  |j                  dggd d	g
      |_        |j                  j                  d	      |_	        t        j                  ||       y )N)i  r3   I)i  r4   IIr0  r   F)droprI  r   r   r   )r   ri   rn   slicer#   r(  r   r<   r9   r8   	droplevelr$   r%   )r'   rF  r)   ind	selectionr?   r@   s          r   test_unstack_unused_levelz.TestDataFrameReshape.test_unstack_unused_level  s     (*;<oVll?l7GGU4[%+s;TAB	""$88QC=&%22u%dC[
 "11#6
fh/r   c           	      F   t        dggt        j                  dggdg      t        j                  g dgg d            }|j                  g d      }t        dggt        j                  g dgg d	      t	        dgd
            }t        j                  ||       y )Nr5   r   r-  r   )r   r   r5   r   r   r   r5   )i1i2i3i4i5i6i7r   )rS  rT  rU  rV  rW  rX  )r-  rS  rT  rU  rV  rW  rX  rR  r   )r   r   rf   r#   r   r$   r%   r'   r)   r?   r@   s       r   test_unstack_long_indexz,TestDataFrameReshape.test_unstack_long_index  s     SE**QC5?((&'@
 @A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
            }|j                  ddg      j                  j
                  dd  ddgk(  sJ y )N        r|   r   r   r-  c2r   )r%     r   )r%  r^  (   rR  rS  rT  r   rS  rR  r   )r   r   rf   r#   r9   rk   )r'   r)   s     r   test_unstack_multi_level_colsz2TestDataFrameReshape.test_unstack_multi_level_cols*  s    3Z#s$**sc3Z(t ((|,4F
 zz4,'//55bc:tTlJJJr   c                 F   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            }|j                  ddg      }|j                  dg      j                  dg      }t	        j
                  ||       y )Nr5   r6   r2   rD   rU   r   r   )r   r   f)m1P3   )rf  A5o   )m2rg  rh  )rk  ri  rj  r`  r   r   rT  rS  )r   r   rf   r#   r$   r%   rY  s       r   &test_unstack_multi_level_rows_and_colsz;TestDataFrameReshape.test_unstack_multi_level_rows_and_cols7  s    VaVb"XBx0**O_+MN((%%%%	 )
 T4L)::tf%--tf5
fh/r   r   jimjoe)ro  rn  levc                 d   d }t        ddt        j                  dgg dg dd      }|j                  dd	g      j	                         d
   }|j                  d	dg      j	                         d
   j
                  }t        j                  ||       |j                  t        |            }|j	                  |      }|j                         j                  j                         t        |      k(  sJ d }	|d
   j                         j                  j                         \  }
}t        |
|      D ]~  \  }}t        |d
   j                   ||f   j#                  d            } |	|d
   j$                  |          |	|d
   j&                  |         z   }t        t)        ||            }||k(  r~J  y )Nc                     | | k7  rdn| }|dS N 1 valval_strs     r   castz:TestDataFrameReshape.test_unstack_nan_index1.<locals>.castN      3JbCGa[!r   r3   r4   r   )rc   rF   rG   rT   )za.wzb.xz .yzd.z)rn  ro  joliern  ro  r|  r?  c                 >    t        | t              rt        |       S | gS r   r  tupler~   r3   s    r   <lambda>z>TestDataFrameReshape.test_unstack_nan_index1.<locals>.<lambda>a      z!U';DG ! r   .)r   r   rH   ri   r#   r&   r$   r%   r~   notnar   sumrI   nonzerozipsortedr(  splitr8   r9   map)r'   r   rp  rz  r)   r*  r)  r  udfmk_listr   rF  r   r`   s                 r   test_unstack_nan_index1z,TestDataFrameReshape.test_unstack_nan_index1J  s   	" S"&&#.+5
 ||UEN+335g>eU^,446w?AA
dE*\\$s)$jjsj#yy{!!%%'3r7222D\'')0088:
ddO 	!DAq#g,++AqD177<=DCL..q12WS\=Q=QRS=T5UUE3tU+,E5= =		!r   1st2nd3rdr   4th5thc                    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      }|j                  fdd      |j                  fdd      c|d<   |d<   |j	                  t        |            }|j                  |      }|j                         j                  j                         dt        |      z  k(  sJ d }||   j                         j                  j                         \  }}	t        ||	      D ]~  \  }
}t        ||   j                  |
|f   j                  d            } |||   j                   |
          |||   j"                  |         z   }t        t%        |            }||k(  r~J  y )Nc                     | | k7  rdn| }|dS rs  rv  rw  s     r   rz  zATestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.castm  r{  r   r   r2   rP   r3   r6   r   r   r4   rG   rc   rT   rD   rF   )C   '   5   H   9   P      r@  r;  r   ;   2   >   r  L   4      r  <   3   r  c                 :    dj                  t        |             S )Nr  )joinr  rrz  s    r   r  zETestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.<lambda>  s    sxxD!5 r   r5   r2  c           	      Z    dj                  t        | j                  d d d               S )Nr  rU   )r  r  r(  r  s    r   r  zETestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.<lambda>  s#    sxxD!&&2,(?@ r   r  r  r?  c                 >    t        | t              rt        |       S | gS r   r~  r  s    r   r  zETestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.<lambda>  r  r   r  )r   r   rH   applyri   r~   r#   r  r   r  rI   r  r  r  r(  r  r8   r9   r  )r'   r   rp  r   r)   r  r  r  r   rF  r   r`   r*  r)  rz  s                 @r   test_unstack_nan_index_repeatsz3TestDataFrameReshape.test_unstack_nan_index_repeatsi  s#   	" uqy66(Q,%!) %!) %!)	
 %!) uqy%!)66(Q, %!) 66(Q,	
 %!) 66(Q,$&
R HH5AH>HH@qHI 	5	2e9
 \\$s)$jjsj#yy{!!%%'1s2w;666DX^^%,,446
ddO 	!DAq#c(--1-33C89DCHNN1-.S9I9I!9L1MME3tU+,E5= =		!r   c           
      V   t        t        d      t        d      t        d      d      }|j                  ddi      }t        j
                  |j                  d<   |j                  ddg      j                  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      }|j                  ddi      }t        j
                  |j                  d<   |j                  ddg      j                  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      }|j                  ddi      }t        j
                  |j                  d<   |j                  ddg      j                  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                  ||       y )Naaaabbbbrw   r0  r|   rh   r2   r5   r{   r   r2   r5   r6   rD   rP   ru   rv   r   r   r3   r4   r  r   )r6   r5   )r   r~   r;   rl   r   rH   r(  ri   r#   r  r  r   r   r$   r%   r'   r)   r*  valsr   rF  r)  s          r   test_unstack_nan_index2z,TestDataFrameReshape.test_unstack_nan_index2  s.   T*-E!H58LMYYW~&||S#J'//2 1a8VVRVVRVVRVVQ1a8
 Cc4j)*RVVQ1aAq1<EC:&1v1v.>tSk
 $C8
dE*T*-DqNQ4FUSTXVWYYW~&||S#J'//2BFFaVaVbffa[1a&AEC:&1v1v.>tSk
 RVVQ1a(s3$C8
dE*T*-DqNQ4FUSTXVWYYW~&||S#J'//2BFFaVaVaVbffa[AEC:&1v1v.>tSk
 RVVQ1a(s3$C8
dE*r   c           	      :   t        t        d      t        dd      j                         dz  t	        j
                  d      d      }t        j                  |j                  d<   |j                  d	d
g      j                         }t	        j                  ddddt        j                  dgt        j                  dddddgg      }t        ddgd	      }t        dgt        dd      gg dg dgd d
g      }t        |||      }t        j                  ||       y )N
aaaaabbbbbr   rP   r   r6   r%  r0  r  r{   r|   r2   r   r5   rD   ru   rv   rw   r   r3   r4   r   r   )r   r   r   r   r   r   )rU   r   r5   r6   r2   rD   r  r   )r   r~   r   tolistr   r   rH   r(  ri   r#   r  r   r   r$   r%   r  s          r   test_unstack_nan_index3z,TestDataFrameReshape.test_unstack_nan_index3  s    ,' q9@@BQFYYr]
 ||S#J'//1xx!Q1bffa02661aAq2IJKS#JS)E:lA>?%':;+
 $C8
dE*r   c                 *   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      }|j                         j	                  g d      j                         }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  j                         j	                  g d      }t        j                  |j                         |       y )NHgi(Ur\  Pbg	VZ>)Sn@>]K=?)=()Agr\  r  r  )r  a2U0*#r  r  )agentchangedosages_id)ioC  pC  iqC  irC  isC  itC  r   )r  r  r  r  r  r  r  r   r5   rU   r  r  r  r  )r  r  r  r  r  )r   r   r   r   r   r   r5   r6   r2   rD   r  r  )
r   rH   r   r   ri   r#   r   r$   r%   rn   )r'   r  r)   r*  r   rF  r)  s          r   test_unstack_nan_index4z,TestDataFrameReshape.test_unstack_nan_index4  sk    2662669-#rvvy)8RVVY/1*/
 9<
 wwy""#>?GGI VVRVVXrvvs3(BFFJ7

 	*VH5q6B7#8$
 J =>"O4/
 $C8
dE*vvef~""$../JK
dllne4r   c                    t        g dt        ddd      dt        j                  d      z   t        j                  j                  d      j                  d      dz  j                  d      d	      }|d
   t        j                  d      z
  |d<   t        j                  x|j                  d<   |j                  d<   t        j                  x|j                  d<   |j                  d<   |j                  g d      j                  d
dg      }|j                         j                  j!                         dt#        |      z  k(  sJ dD ]A  }|j%                         D ],  \  }}|d   ||d
   |d   ff}||   |j                  |   k(  r,J  C y )N)r5   r6   r5   r6   r5   r6   z
2014-02-01ru   r   )r   freqd   r6   r%  )r  r  rn  ro  r  z
2014-02-02r  )r5   r  )r2   r  )r5   r  )rD   r  r  rm  r  )r   r   r   r   r   r   r   roundr   r   rH   rn   ri   r#   r  r   r  rI   iterrows)r'   r)   r*  r   r  r  rq   s          r   test_unstack_nan_index5z,TestDataFrameReshape.test_unstack_nan_index5  sc   )!,DRYYq\)		--a0@@CbHOOPQR	
 uI\ ::5	.0ff4x266(+.0ff4x266(+||12::E5>Jzz|""&&(ABK777! 	/C /1hah% 99v#.../	/r   c                    t        ddd      }t        g dt        j                  |ddfg            }|rd nt        }d}t        j                  ||      5  |j                  |	      }d d d        t        j                  t        d
      dg      }t        j                  |dfg      }t        g d||      }	t        j                  |	       y # 1 sw Y   hxY w)Ni  r5   r  r{   r|   r   z2The previous implementation of stack is deprecatedr\   r   rD   )r|   r7   )r   r   r   rf   r   r$   rg   r"   r<   r;   r%   )
r'   r   tr)   warnrp   r?   eidxecolsr@   s
             r   %test_stack_datetime_column_multiIndexz:TestDataFrameReshape.test_stack_datetime_column_multiIndex2  s    T1a |Z-C-Cac]O-TU#tB''C8 	9XX<X8F	9 &&a&'9:&&Cz2\uE
fh/	9 	9s   CCmultiindex_columnsr  r   r5   r6   r2   )r   r5   r6   rD   rb   r   )r6   r2   rD   )rD   r2   r6   r5   r   )r2   r6   r5   r   )rD   r6   r5   r   )r6   r5   r   )r2   r6   r5   )rD   r2   r6   r   rU   c                    |sdnt         j                  }t        j                  g dddg      }||   }t	        t        j                  dt        |      z        j                  dt        |            |      }|j                  |||      }t        |t              rS|sQ|j                  |d	|      }	t        |	t              rt        j                  ||	       nt        j                  ||	       t        j                  |j                   j#                         |j                   j$                        |_        |j                  |||      }	t        |	t              rt        j                  ||	       y t        j                  ||	       y )
NF)r|   rF   )r|   rT   )r{   rG   )r   rF   )r   uUpperLowerr   r2   r   r   dropnar   T)r   
no_defaultr   rf   r   r   r   rI   r   r"   r  intr
   r$   r=   r%   r9   to_numpyrk   )
r'   r  r   r   r  full_multiindex
multiindexr)   r?   r@   s
             r   test_stack_partial_multiIndexz2TestDataFrameReshape.test_stack_partial_multiIndex@  s=   @ +$00HG$
 %%78
IIa#j/)*221c*oF
 f<PeS!, xxeD|xTH(F+&&vx8%%fh7++JJ!)9)9

 88%\8Rh'""684!!&(3r   c           	      B   t        j                  g dddg      }t        t        j                  d      j                  dd      |g d   	      }|sd
nt        j                  }|j                  ||      }t        ddgdt        j                  gddgdt        j                  ggt        t        d      g dgg dg dgd dg      t        ddgd            }|d   j                  |j                  j                  d         |d<   t        j                   ||       y )Nr  r  r  r   ru   r6   r2   )r   r5   r2   r   Fr  r   r   r5   rP   rD   )r  rF   rG   rT   r
  )r5   r2   r5   r2   r  r|   r   r   r7   )r   rf   r   r   r   r   r   r  r"   rH   r;   r   rl   r   r(  r$   r%   )r'   r   r  r)   r  r?   r@   s          r   test_stack_full_multiIndexz/TestDataFrameReshape.test_stack_full_multiIndex  s    
 %00HG$
 ryy|++Aq1?9;UV*lCVa[1a&1bff+6a"67#\2Wo
 3*73
 !,,RYY^^A->?
fh/r   orderedFTc                 (   t        j                  t        d      t        d      |      }t        g dg|      }|j	                  |      }t        j                  |j                  |g      }t        g d|      }t        j                  ||       y )Nyxzry   r   r  )r%  r;  r<  r   r   r:   )r   CategoricalIndexr~   r   r"   r   r<   r8   r
   r$   r=   )r'   r  r   cidxr)   r?   r  r@   s           r   %test_stack_preserve_categorical_dtypez:TestDataFrameReshape.test_stack_preserve_categorical_dtype  sv     ""4;4;PWX~t4|4 &&$'78,d3
vx0r   zlabels,datary   )r%  r;  r<  r9  r  r=  zyx)r  r=  r<  r9  r%  r;  c                    t        j                  |t        |      |      }t        j                  ddg|      }t        j                  ||g      }t        t        |      g|      }|j                  ddg|      }	|r|n
t        |      }t        j                  ||      }
|rt        |      n|}t        |t        j                  t        d      |
|g      	      }t        j                  |	|       y )
Nr  r  v)r  r   r   r5   r   r:   )r   r  r  r   r<   r   r"   r
   r;   r$   r=   )r'   r  labelsro   r   r  cidx2r  r)   r?   s_cidxexpected_datar@   s                r   +test_stack_multi_preserve_categorical_dtypez@TestDataFrameReshape.test_stack_multi_preserve_categorical_dtype  s     ""6fVngV##S#J@&&e}5t~t41a&|<'VF^$$VW=(4t$!8!8%(FE9R!S
 	vx0r   c                 &   t        j                  g d      }t        ||d      }|j                  |      }t	        j
                  t        d      ddgg      }t        t        j                  g d      |      }t        j                  ||       y )	N)r3   r3   r4   r   r{   r|   r   rD   r{   r|   )r3   r3   r3   r3   r4   r4   r   r   r:   )
r   r   r   r"   r   r<   r;   r
   r$   r=   )r'   r   r   r)   r?   r8   r@   s          r   ,test_stack_preserve_categorical_dtype_valueszATestDataFrameReshape.test_stack_preserve_categorical_dtype_values  sz    
 nn12Ss+,|4''qC:(>?NNCDE
 	vx0r   r8   r
  )r   r   r6   r2   c                 $   t        j                  ddgddgg      }t        ||      j                  d      }|j	                  |      }t        j
                  |j                  j                               }t        |j                         ||j                        }t        j                  ||       t        j                  |j                  j                        }t        j                  |j                        }	t        j                  ||	       y )Nr5   r6   r3   r4   r7   r   )r   r<   r   fillnar"   rf   r8   r  r9   r$   r%   r   asarrayr  assert_numpy_array_equal)
r'   r8   r   r9   r)   r*   	new_indexr@   stacked_codesexpected_codess
             r   )test_stack_multi_columns_non_unique_indexz>TestDataFrameReshape.test_stack_multi_columns_non_unique_index  s     ))Aq6C:*>?UG4;;A>(((5**7==+A+A+CD	i
 	gx0

7==#6#67IOO4
##M>Br   z,vals1, vals2, dtype1, dtype2, expected_dtyperC   r   Int64Float64r   r   stringr  c                    t        t        ||      t        ||      d      }|j                  |      }|j                  t              j                  |      j                  |      }	t        j                  ||	       y )NrQ   )r{   r5   )r{   r6   r   )r   r
   r"   rl   r  r$   r%   )
r'   vals1vals2dtype1dtype2expected_dtyper   r)   r?   r@   s
             r   .test_stack_multi_columns_mixed_extension_typeszCTestDataFrameReshape.test_stack_multi_columns_mixed_extension_types  su      f5 f5
 |4IIf###>EEnU 	 	fh/r   c                    t        j                  g dddg      }t        t        j                  g dd      t        j
                  g d      d	|
      }|j                  |      }|j                  t              j                  |      }|dk(  r&|d	   j                  t        j                        |d	<   n%|d   j                  t        j                        |d<   t        |j                  j                  gdz  |j                  j                  gdz  z   |j                  
      }t!        j"                  |j$                  |       t!        j&                  |j                  t              |       y )N)r{   r   r  )r|   r5   r3   r4   r   )r   r5   Nr   rQ   r_   r  r:   r?  r   r  r6   )r   rf   r   r   r  r   r#   rl   r  r  NAr
   r{   rR   r|   r9   r$   r=   r   r%   )r'   r   r8   r)   r?   r@   expected_dtypess          r   "test_unstack_mixed_extension_typesz7TestDataFrameReshape.test_unstack_mixed_extension_types  s   &&'EcSVZXXXl':^^O4 
 %(99V$,,5,9A:#+J#7#>#>ruu#EHZ !)(!3!:!:255!AHX TTZZL1

|a//v~~
 	v}}o>
fmmF3X>r   bazc                    t        j                  t        d      ddggddg      }t        ddgdd	gg|d
dg      }d|j                  _        t        g dgt        j                  g dddg            }d|j                  _        |j                         j                  d      j                  d|      }t        j                  ||       y )Nr5   r   r   r   r  r   r   r6   r2   r|   r{   r7   r   )r2   r5   r6   r   ))r   r{   )r   r|   )r   r{   )r   r|   r   r2  )r3  r   )r   r<   r;   r   r9   rd   rf   r8   r#   	swaplevel
sort_indexr$   r%   )r'   r   r  r)   r@   r?   s         r    test_unstack_swaplevel_sortlevelz5TestDataFrameReshape.test_unstack_swaplevel_sortlevel  s     $$eAhc
%;E5>RAA'rC:F

N**@PU
 $''Q'/:::O
fh/r   )>__name__
__module____qualname__r   markfilterwarningsr0   rA   rN   rs   r   r   r   r   r   r   parametrizer   rf   r   r   r   r   r   r   r  r  r  r#  r   rA  r   r+  r.  r8  rH   rG  rL  rP  rZ  ra  rl  r~   r;   r  r   permutationsr  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  rv  r   r   r   r      s   [[C>>$ [[C00.	. [[C0000d&0P0,0,0< 0D02 [[H |\<H&
&&4S#J '
&&D,
 ")+CDq!f3'&
&&	 2		
!D0E!D0((T [[C

< [[C6
6
p [[C;
;
z& [[C004.6/1b [[RXXa[("((1+&RYYq%yryyBd'CD	
++. [[C88A0 [[,+bffc1-=1~N-1~Q?OP	
00" [[VsCj%+%>?0 @00,K0& [[U^^$DE[[UDqN3! 4 F!: [[U$:I$:$:;P$QR[[UDqN3[[UUEN3;! 4 4 S;!z/+b+0'5R/.0 [[C [[FFFCCCFFF+	
4 [[Wr1a!Q!Q&@A4 B5<4B [[C00* [[C [[Y61 71 [[C [[Y6[[%[23%[23	
1 71& [[C	1	1 [[C [[	
CC [[C [[6Vc3Z)Y?VeU^WhA	
00  [[Wq!f-? .?. [[Wq%j10 20r   r   rR   r   r  c                    t        j                  g d      } | t        j                  dd      ||      }|j	                  dd      }| t
        u rt        j                  dd	g      }nd
dg}t        ddgddggt        j                  ddg      ||      }t        j                  ||       |j	                  dd      }| t
        u r!t        t        d      ddggddgddgg      }nddg}|dk(  rt        j                  nt        j                  }t        d|g|dgd|g|dgg|t        j                  g d      |      }t        j                  ||       |j	                  ddgd      }| t
        u r't        t        d      ddgddggddgddgddgg      }nt        j                  ddg      }t        ddgddggd
dg||      }t        j                  ||       y )N))r	  rT   r4   )r	  rG   r3   )r  rT   r4   )r  rG   r3   r   r   rZ   r   Fr   sort)r   r	  )r   r  r	  r  rC          @r   )rT   r4   )rG   r3   )r8   r9   rR   rU   r5   r4   r3   r  r  ))r	  rT   )r	  rG   )r  rT   )r  rG   r9   r8   rR   r6   rT   rG   )r   rf   r   r   r#   r   r$   r%   r;   r   r  rH   )frame_or_seriesrR   r8   objr?   r   r@   items           r   test_unstack_sort_falser$  2  s    ""TE "))C-U%
HC[[qu[-F)#%11:z2JK!5>
sc3Z $$j*%=> 	H &(+[[r[.F)#%!HsCj)1a&1a&1A
  :Y&255BFFD
ttSkC;s< $$D
 H &(+[[1vE[2F)#%!HsCj3*5q!fq!fqRSf=U
 &11:z2JK
sc3Z en 	H &(+r   zlevels2, expected_columns)Nr5   r6   r2   value)r%  r5   )r%  r6   )r%  r2   )r5   Nr6   r2   )r5   r6   Nr2   )r5   r6   r2   N)z	nan=firstz
nan=secondz	nan=thirdznan=last)idsc           	      \   ddg}t        j                  || gddg      }t        dg di|      }|j                  dd	
      }ddgddgddgddgg}t        t	        t        ||            t        ddgd      t        j                  |d dg            }t        j                  ||       y )Nr4   r3   level1level2r   r%  )r   r5   r6   r2   rD   rP   ru   rv   r:   Fr  r   rD   r5   rP   r6   ru   r2   rv   r   r7   )
r   r<   r   r#   dictr  r   rf   r$   r%   )levels2r   levels1r8   r)   r?   r  r@   s           r   test_unstack_sort_false_nanr-  m  s    0 CjG##Wg$6x>RSE	G56e	DBZZhUZ3FVaVaVaV4MS!=12S#JX.&&'7h?OPH
 &(+r   c                     t        g dd      } t        j                  g d      | _        | j	                         }t        dt        j                  dgddt        j                  gdt        d	      t        
      }t        j                  ||       | j	                  d      }t        g dg ddt        d	      t        
      }t        j                  ||       y )Nr   r  rQ   rS   r3   r4   r   rX   ry   rZ   r   rV   )r3   r   r3   )r4   r   r   )r
   r   rf   r8   r#   r   r   rH   r~   r  r$   r%   )ro   r?   r@   s      r   test_unstack_fill_frame_objectr/    s    &h7D''8DJ
 \\^FBFFC S"&&'9:5kH
 &(+ \\S\)FO4DKvH &(+r   c            
      b   t        t        j                  dd      gdgdgdgdg d      } | j                  ddg      j	                         }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                  ||       y )Nz2017-08-27 01:00:00.709949+0000UTC)tzr3   r4   r   )	timestampr3   r4   r   r   r   r3  r   r5   r  r7   )	r   r   r   ri   r#   r   r   r$   r%   )r)   r?   r@   s      r   "test_unstack_timezone_aware_valuesr4    s    	,,'HUST		
 -
B \\3*%--/F
,,8U
CS	IJSE$ #&.q6Aq6"+
H &(+r   r   c           	          t        dddd      }t        d|ig d      }|j                  | 	      }t        |t	        g ddggg d
g dg            }t        j                  ||       y )Nr   2018010120180103zAmerica/New_York)r  startendr2  r{   r   r:   r   rb   r   r   r   r  )r   r   r"   r
   r   r$   r=   )r   tsr)   r?   r@   s        r    test_stack_timezone_aware_valuesr<    sj     
JJCU	VB	C9O	4BXX<X0F
3% 8I@VWH 68,r   r  c                 
   t        j                  d      t        j                  d      g}t        t        j                  t        |g g g            }|rb| t        j                  urPt        j                  t        d      5  t        t        j                        j                  | |       d d d        y t        t        j                        j                  | |      }t        j                  ||       y # 1 sw Y   y xY w)Nr   r  )rR   r8   dropna must be unspecifiedr\   rQ   r  )r   
RangeIndexr
   r   r   r   r   r  r   r   r   r   r"   r$   r=   )r  r   r>   r@   r?   s        r   test_stack_empty_framer@    s     mmAa 01FBJJjrSUh.WXHcnn4]]:-IJ 	XBJJ'--V,-W	X 	X ,22 3 
 	vx0	X 	Xs   ,C99Dc                    |rb| t         j                  urPt        j                  t        d      5  t        t        j                        j                  | |       d d d        y |}|j                         j                  g | |      }t        j                  ||       t               }t               j                  g | |      }t        j                  ||       y # 1 sw Y   y xY w)Nr>  r\   rQ   r  r  )r   r  r   r   r   r   r   rm   r"   r   r$   r%   )r  r   	int_framer@   r?   s        r   test_stack_empty_levelrC    s     cnn4]]:-IJ 	VBHH%++6+U	V 	V !''V, ( 
 	fh/;""F"V
fh/	V 	Vs   ,CC%rW   c                    |rr| t         j                  ur`t        j                  t        d      5  t        t        j                        j                  | |      j                  |       d d d        y t        t        j                        j                  | |      j                  |      }t        t        j                        }t        j                  ||       y # 1 sw Y   y xY w)Nr>  r\   rQ   r  rV   )r   r  r   r   r   r   r   rm   r"   r#   r$   r%   )r  rW   r   r?   r@   s        r   test_stack_unstack_empty_framerE    s    
 cnn4]]:-IJ 	-BHH%++L , gg,	- 	- BHH%U&|U<W
W+ 	
 288,
fh/	- 	-s   <C!!C*c                      d} t        j                  t        |       5  t        t        j
                        j                          d d d        y # 1 sw Y   y xY w)Nz'index must be a MultiIndex to unstack.*r\   rQ   )r   r   r   r
   r   rm   r#   )rp   s    r    test_unstack_single_index_seriesrG    s?    
4C	z	- )RXX&&() ) )s   )AAc            	         t        ddgddgddgddgdd	gd
      } | j                  g d      } | j                  dgd      } | j                  dd      j                  dd      }| j                  ddgd      }t        g dg dgt        ddgd      t	        j
                  g dg d            }t        j                  ||       y )NAliceBob      #@rw   FTr   femalemale)rd   scoreemployedkidsgender)rd   rO  rP  rQ  rQ  rV   rO  rP  )rK  r\  r\  r\  )r\  r\  r\  g       @rd   r   ))rN  rL  Fr   )rN  rL  Tr   )rN  rM  Fr   )rN  rM  Tr   )NrQ  rO  rP  r   r7   )r   ri   r#   r   r   rf   r$   r%   )r)   r@   r?   s      r   test_unstacking_multi_index_dfrR    s    	e$1XF(	

B 
<	=B	XJ1	-Bzz*z3;;Fq;QHZZV,Z;F	34We$62&& 7
H &(+r   c                 8   t        j                  ddgddg      }t        g dg|      }|j                  d|       }t	        d	d
gd      }t        t        d      dd	ggddgddggd dg      }t        ddgddgg||      }t        j                  ||       y )NrE   )rG   rT   r3   r   r5   r5   r5   r5   r   r   r   rG   rT   r   r5   rF   r  r7   )r   r<   r   r"   r   r;   r$   r%   )r   r9   r)   r?   new_columnsr  r@   s          r   2test_stack_positional_level_duplicate_column_namesrV  ,  s     %%z:&>sCjQG	L>7	3BXXalX3Fc
-Ka3*%q!fq!f-=dC[I 1a&1a&)KPH&(+r   c                  >   t        j                  t        d      g dg      } t        t        j
                  j                  d      j                  d      t        j
                  j                  d      j                  d      j                  t        j                        t        j
                  j                  d      j                  d      t        j
                  j                  d      j                  d      d|       }t        d |j                  j                  D              sJ |j                         }t        j                  t        d      D cg c]  }||   j                          c}t        d      d	
      }t!        j"                  ||       y c c}w )NrP   r0  r6   r=  r  r:   c              3   J   K   | ]  }|j                   j                     y wr   )mgr_locsis_slice_like).0rF   s     r   	<genexpr>z5test_unstack_non_slice_like_blocks.<locals>.<genexpr>I  s     D1::+++Ds   !#rD   r5   )keysr3  )r   r<   r;   r   r   r   r   r   rl   rm   anyrJ   rK   r#   r   concatr$   r%   )r  r)   rM   nr@   s        r   "test_unstack_non_slice_like_blocksra  <  s"    
	 	 %(O!<	=B	yy$$Q'77;yy$$Q'77;BB288Lyy$$Q'77;yy$$Q'77;		
 
B DRWW^^DDDD
**,Cyy58<a"Q%--/<58RSTH#x( =s   Fc           	         g dg dddt         j                  t         j                  gg}t        |t        ddgddggg d	g d
g            }| ri nddi} |j                  d d| d|}| rRt        dddddt         j                  gdddddt         j                  gdt        j
                  g dg dg            }n-t        g dg ddt        j
                  g dg dg            }t        j                  ||       t        |t        j
                  g dg dg            }| ri nddi} |j                  d d| d|}t        j                  ||       y )!N)r5   r6   rC   r   )r6   r2   r   r   r2   rD   r|   r{   rF   rG   r
  r  r  r   r  Fr   r   r   rC   r  r   r   rE   )r   r   r5   r5   r6   r6   )r|   r{   r|   r{   r|   r{   r:   )r   rC   r  r   rC   )r  r   rC   r   r   )r   r   r5   r5   r6   )r|   r{   r|   r{   r|   )r|   r|   r{   r{   )rF   rG   rF   rG   rv  )r   rH   r   r   r"   r  r$   r%   )r   ro   r)   kwargsr?   r@   s         r   test_stack_sort_falserd  Q  sb    .Arvvrvv0FGD	#Jc
+L,3O

B  Rfe_FRXXCALCFCF3S#rvv63S#rvv6 ((#%CD
 +2KL((/;T)UV
 &(+ 
&&(<>R'ST
B  Rfe_FRXXCALCFCF&(+r   c                    t        j                  ddg      }t        ddgddggddg|	      }| ri nd
di} |j                  ddgfd| i|}t        j                  g d      }t	        g d|      }t        j                  ||       y )N)weightkg)heightmr   r  rC   r   r   r   r7   r  Fr   r5   r   ))r   rf  rg  )r   rh  ri  )r   rf  rg  )r   rh  ri  )r   r  rC   r   r:   )r   rf   r   r"   r
   r$   r=   )r   r   r)   rc  r?   r   r@   s          r   !test_stack_sort_false_multi_levelrj  x  s     
 
 "2O!D
EC	S#Jc
+E5>3	OBRfe_FRXXq!fB<B6BF++	
N *.AH68,r   c                   X
   e Zd Zd Zej
                  j                  dg dg dgg ddg dfg dg d	gg d
dg dfg dg dgg d
dg dfg      d        Zd Zej
                  j                  d      d        Z
ej
                  j                  d      ej
                  j                  d ed       eddgddgg ej                   ej                  d      j!                  d      d       ej                  g dd      g      g ej"                  d       eddgddgddgg ej                   ej                  d      j!                  d      d       ej                   g dg d       ej                  g dd      g      gg      d                Zej
                  j                  d      d!        Zej
                  j                  d      d"        Zej
                  j                  d      d#        Zej
                  j                  d      d$        Zej
                  j                  d      ej
                  j                  d%d&d'g      d(               Zd) Zej
                  j                  d      d*        Zej
                  j                  d      d+        Zej
                  j                  d      d,        Zej
                  j                  d      d-        Zd. Zd/ Zej
                  j                  d      d0        Zej
                  j                  d      d1        Z d2 Z!d3 Z"ej
                  j                  d      d4        Z#ej
                  jH                  d5        Z%ej
                  j                  d      ej
                  j                  d6e&jN                  jQ                  d7 d8D                    ej
                  j                  d9 e)d            d:                      Z*ej
                  j                  d      d;        Z+ej
                  j                  d      d<        Z,ej
                  j                  d      d=        Z-d> Z.ej
                  j                  d      d?        Z/d@ Z0dA Z1ej
                  j                  d      dB        Z2ej
                  j                  d      dC        Z3ej
                  j                  d      dD        Z4dE Z5ej
                  j                  d      dF        Z6ej
                  j                  d      dG        Z7dH Z8y)ITestStackUnstackMultiLevelc                     |}|j                         }|j                          |j                  t              j                          |j                  t        j                        j                          y r   )r#   rl   r  r   r   )r'   /multiindex_year_month_day_dataframe_random_dataymdr,   s       r   test_unstackz'TestStackUnstackMultiLevel.test_unstack  sO    =KKM	 	

3! 	

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


b"%	* 	*s    F$$F-c                 >   t        ddgddgddgd      }|j                  ddg      }|sd	nt        j                  }|j	                         j                  ||
      }t        |      t        |j                               kD  sJ |rFt        j                  t        d      5  |j	                         j                  d|
       d d d        y |j	                         j                  d|
      }t        j                  ||j                                y # 1 sw Y   y xY w)Na1a2b1b2r5   r0  r{   r|   Fr  r>  r\   T)r   ri   r   r  r#   r"   rI   r  r   r   r   r$   r%   )r'   r   r)   r  r*   s        r   test_stack_dropnaz,TestStackUnstackMultiLevel.test_stack_dropna  s    
 dD\tAq6JK\\3*%***,$$F$N7|c'.."23333z1MN K

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

 	

C:r   c           
         d}t        t        j                  j                  d      j	                  d|      t        j                  j                  d      j	                  d|      t        j                  j                  d      j	                  dd	|      t        j                  j                  d
      j	                  dd|      t        j                  j                  d      j	                  d|      t        j                  j                  d	      j                  |      d      }|j                  g d      }|j                  d       y )N  r6   r  )sizer2   i,  rD   irv   rP   i   ru   i  )r{   r|   r   r   r   r   )r{   r|   r   r   r   r   )r   r   r   r   r  r   ri   r#   )r'   NUM_ROWSr)   idfs       r   test_unstack_sparse_keyspacez7TestStackUnstackMultiLevel.test_unstack_sparse_keyspace  s    YY**1-66s6JYY**1-66s6JYY**1-66r186LYY**1-66sBX6NYY**1-66t(6KYY**1-==hG	
 ll45 	Cr   c                 R   ddgg dg}g dg dg}t        ||      }t        t        j                  j	                  d      j                  d      |      }|j                         }t        |j                        d	k(  sJ |j                  |
      }t        j                  ||       y )Nr   r5   r  r
  r1  r6   )rD   r6   r:   rD   r   )r   r   r   r   r   r   r#   rI   r9   r"   r$   r%   )r'   r   r>   r  r8   r)   r?   r  s           r   test_unstack_unobserved_keysz7TestStackUnstackMultiLevel.test_unstack_unobserved_keys  s    
 a&,'|,65)ryy,,Q/??GuU6>>"a'''<8
fb)r   c                     G d dt         j                        }|j                         5 }|j                  t         d|       t	        t        j                  d      t        j                  d      t        j                  d      g      }d}t        j                  ||      5  t        j                  t        d	      5  |j                          d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)
Nc                   (     e Zd Zd fdZddZ xZS )gTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32_warns.<locals>.MockUnstackerc                 8    t        |   |i | t        d      )NDon't compute final result.)super__init__	Exception)r'   argsrc  	__class__s      r   r  zpTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32_warns.<locals>.MockUnstacker.__init__  s!     $1&1 =>>r   c                      y r   rv  )r'   s    r   _make_selectorszwTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32_warns.<locals>.MockUnstacker._make_selectors  s    r   )returnN)r  r  r  r  r  __classcell__)r  s   @r   MockUnstackerr    s    ?
r   r  
_Unstacker)   r6   r   r:   z$The following operation may generater\   r  )reshape_libr  contextsetattrr   r   rA  r   r$   rg   r   r   r  r#   )r'   performance_warningmonkeypatchr  ri  r)   rp   s          r   5test_unstack_number_of_levels_larger_than_int32_warnszPTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32_warns  s    	K22 	   " 		!aIIk<?$yy'5)9:B 9C++,?sK !]]94QR !JJL!!		! 		!! !! !		! 		!s<   A9D#C5?C)C5D)C2.C55C>	:DD
r>   c              #   v   K   | ]1  }t        j                  t        j                  g d |      d       3 yw)rb   r6   r   N)r   r   r  )r[  widths     r   r\  z$TestStackUnstackMultiLevel.<genexpr>	  s5      &
 i44YFqQQ&
s   79r   	stack_levc                 F   t        |g dg dg      }t        |t        d      g      }|ri nd|i} |j                  |fd|i|}|j                  D ]K  }	|j
                  D ]:  }
|j                  |	|
f   }|	|
|   f}|
d|z
     }|j                  ||f   }||k(  r:J  M y )	Nr
  r  r  rD   )r9   ro   r  r   r5   )r   r   r;   r"   r8   r9   rn   )r'   r>   r)  r  r   r9   r)   rc  
df_stackedrowr   r@   
result_row
result_colr?   s                  r   %test_stack_order_with_unsorted_levelsz@TestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels 	  s      F<2NOweAhZ8#&$RXXiMlMfM
88 	*Czz *66#s(+ #i.0
 Y/
#
J(>?)))*	*r   c           
      t   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        j                  dd            t        fdj                  D              sJ y )	N)r{   r   r|   )r|   r{   r   r2   r  rP   rU   )r9   r8   ro   c              3      K   | ]Q  }j                   D ]@  }j                  ||f   j                  d       j                  ||d    f|d   f   k(   B S yw)r   r   r5   N)r9   rn   r"   )r[  r,  r   r)   r   s      r   r\  z]TestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels_multi_row.<locals>.<genexpr>*	  sv      
 zz	
  FF38xxx5993A-Q:OPQ
Q
s   AA)r   r   r   r;   tiler   r   rI   r   r4  r8   )r'   r   r  r)   s    ` @r   /test_stack_order_with_unsorted_levels_multi_rowzJTestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels_multi_row	  s     #_599U1Xq)27758Q+?@
 eAhRYYq3r7{-C-K-KAr-R
  
 xx
 
 	
 
r   c                 &   d}d}t        |g dg dg      }t        |t        d      gg d      }|ri nd	d
i} |j                  |fd|i|}t        g dddggg dg dg      }t        g dg dd|      }	t	        j
                  ||	       y )N)r   r5   )r5   r   r5   r
  r  r  rD   )r5   r   r6   r2   )r9   ro   r8   r  Tr   r  r   )r5   r5   r   r   r6   r6   r2   r2   )r5   r   r5   r   r5   r   r5   r   r  )r6   r2   r6   r2   r6   r2   r6   r2   r5  r:   )r   r   r;   r"   r$   r%   )
r'   r   r>   r)  r9   r)   rc  r?   r   r@   s
             r   1test_stack_order_with_unsorted_levels_multi_row_2zLTestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels_multi_row_21	  s    
 "	F<2NOweAhZ|L#&$)I,I&I# 1a&)+-EF
 ++ !
 	fh/r   c           	         t        j                  d      }t        j                  |D cg c]  }d| 	 c}|D cg c]  }d| 	 c}g      }t        |j                  ddg      }d|j
                  _        d|i}t        j                  |d      }d	dg|j
                  _	        |j                  t        |j
                        d      }|j                  dd	g|
      j                  dd	g      }t        ddgddgddgddgddggt        d      t        j                   ddgdd	g            }	t#        j$                  ||	       y c c}w c c}w )NrP   r4   r3   r   r  rF   r5   r2  r  r   a0b0r  r  r   r  a3b3a4b4)r3   rF   )r4   rF   r   r7   )r   r   vstackr   r&   r9   rd   r   r_  rk   r  r  r"   r#   r;   r   rf   r$   r%   )
r'   r   r   rF   ro   r)   second_level_dictmulti_level_dfr?   r@   s
             r   'test_stack_unstack_unordered_multiindexzBTestStackUnstackMultiLevel.test_stack_unstack_unordered_multiindexI	  sQ   
 1yy"()Q1QC)"()Q1QC)
 tvvSz2!

 "I#41=(0'':$##F>+A+A$B#K7H-LIQQh
 D\D$<$d|dD\R(**Z((0C
 	fh/) *)s
   E	E
c                    |}d|d<   d|d<   |j                  d      }|d   j                  t        j                  k(  sJ |s"|d   j                  t        j                  k(  sJ 	 |d   j                  t        j                  k(  sJ y )	Nr   r   r6   r   r  r  )r   r5   )r   r5   )r#   rR   r   r   object_)r'   rn  r"  ro  r,   s        r   test_unstack_preserve_typesz6TestStackUnstackMultiLevel.test_unstack_preserve_typesg	  s     >CCKK(	 &&"**444 & f##rzz1	
 &&"**444r   c                 .   t        j                  t        j                  d      d      }t        j                  d      }t        |gdz  ddggz   |gdz  t        j                  d      j	                  d      gz         }t        t        j                  d      |      }|j                         }|j                  d	k(  sJ |j                  |
      }t        j                  ||j                  |j                               t        ddgg|gdz  z   t        j                  d      j	                  d      g|gdz  z         }t        t        j                  d      |      }|j                  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      j	                  d      gz   |gdz  z         }t        t        j                  d      |      }|j                  d      }|j                  d	k(  sJ y )N  r6   rw   r   r5   r  r  r:   )rF  r6   r   rD   )r   r2  r   r   r   r
   r#   r!   r"   r$   r=   r  r8   )r'   r   r  r   r8   rr   r?   r*   s           r   !test_unstack_group_index_overflowz<TestStackUnstackMultiLevel.test_unstack_group_index_overflowx	  s    		#*		#7Q;1a&)'A+1!4!4S!9 ::

 299T?%0||x''' ,,L,9
q'//!''":; F8ugk)99Q<&&s+,w{:

 299T?%01||x''' 7Q;1a&)UGaK77Q;"))A,"5"5c":!;;ugkI

 299T?%01||x'''r   c           	         t        g dg ddgdz  d      j                  ddg      }d|d	<   t        |j                  j                        d
k(  sJ |j                  d      }|d   j                  d      |d<   t        g dt        j                  dddggt        ddgd      t        j                  g dd dg            }t        j                  ||       y )N)r{   r{   r|   )cacbrJ  r%  r2   )r3   r4   r  r3   r4   r5   is_r6   rK  rI  r   )      $@rM  r   r   rM  r\  r   r{   r|   r   ))r  rI  )r  rJ  rL  )rK  rJ  r   r7   )r   ri   rI   rJ   rK   r#   r  r   rH   r   r   rf   r$   r%   rY  s       r   +test_unstack_with_missing_int_cast_to_floatzFTestStackUnstackMultiLevel.test_unstack_with_missing_int_cast_to_float	  s    $'TAX
 )S#J
 	 5	277>>"a'''C &} 5 < <Q ?}#bffdC%=>c
-**HSk
 	fh/r   c                    t        g dg dg dg dd      }|j                  g d      }g d}|j                  j                  |d      |_        |j                  j                  |d	      |_        |j	                  d
      d   j                         j                  }t        g dg dgg dg dgdd	g      }t        j                  ||       y )Nr  )r2   rD   r5   r6   rT  )L1L2L3rF   )rP  rQ  rR  )n1n2n3NrP  )r>   r   rQ  rR  )rF   r5   r  )r6   r2   r   r5   r  )	r   ri   r8   
set_levelsr#   r  r   r$   r  )r'   r   
new_levelsr?   r@   s        r   test_unstack_with_level_has_nanz:TestStackUnstackMultiLevel.test_unstack_with_level_has_nan	  s    """!	
 mm./-
II((
$(G	II((
$(G	T"8,779??,.FG.,
 	fh/r   c                    t        t        j                  ddg      t        j                  g d            }|j                  d|      }|r1t        dgdd	ggg d
g dg      }t        dgddggg d
g dg      }nt        g d      }t        g d      }t        dt        j                  t        j                  gt        j                  ddgt        j                  ddgg||      }t        j                  ||       y )Nr5   rP   ))r   NN)r   r6   r   )r   r6   r5   )r   r2   r   )r   r2   r5   r   r6   r   r   r\  r   r:  )rU   r   r5   r  r2   )r   N)r   r   r5  )rZ  )r   r6   )r   r2   r7   )
r   r   rA  r   rf   r"   r   rH   r$   r%   )r'   r   r)   r?   r8   r9   r@   s          r   $test_stack_nan_in_multiindex_columnsz?TestStackUnstackMultiLevel.test_stack_nan_in_multiindex_columns	  s    
 HHaV**
 !,7sS#J&7	:?VWE !q!fi=TUG56E78G266266"RVVS#$6c8JK

 	fh/r   c                 >   t        j                  dgdz  dgdz  z   t        j                  t	        d            t        j                  t	        d            g      }t        t        j                  d      j                  dd      |      }|j                  d	dg|
      }|rt        dt        j                  gd	t        j                  gt        j                  dgt        j                  dgdt        j                  gdt        j                  gt        j                  dgt        j                  dggddgt        j                  dgdz  d	gdz  z   t        j                  t	        d            t        j                  t	        d            g            }nt        dt        j                  gt        j                  dgd	t        j                  gt        j                  dgdt        j                  gt        j                  dgdt        j                  gt        j                  dggddgt        j                  dgdz  d	gdz  z   t        j                  t	        d            t        j                  t	        d            g            }t        j                  ||d       y )Nr{   r6   r|   r  ccddrw   rD   r   r5   r   r   r2   rP   ru   rv   ababababccddccddr   aabbaabbcdcdcdcdF)check_index_type)r   r  r   r   r~   r   r   r   r   r"   rH   r$   r%   )r'   r   r  r)   r?   r@   s         r   "test_multi_level_stack_categoricalz=TestStackUnstackMultiLevel.test_multi_level_stack_categorical	  s   
 %%	SEAI%tF|,tF|,
 ryy|++Aq14@1a&|< KKVVQKVVQKKKVVQKVVQK	 c
 ,,a1#')tJ'78tJ'78H* !KVVQKKVVQKKVVQKKVVQK	 c
 ,,a1#')tJ'78tJ'78H( 	fhGr   c                    t        t        j                  d      j                  dd      t	        j
                  dt        j                  fdgddg      t        dd	gd
      t        j                        }|j                  |      }|r+t	        dd	gt        j                  dggg dg dgd
dg      }n=t	        j
                  dt        j                  fdd	t        j                  fdgd
dg      }t        dt        j                  gt        j                  d	gdt        j                  gt        j                  dggt        ddgd      |      }t        j                  ||       y )NrD   r6   r{   r}   r  r  r   r   r5   Numr   r   r   r4   r
  r  r  )r   r4   )r5   r4   r\  r  rC   r|   r   )r   r   r   r   r   rf   rH   r   r   r"   r$   r%   )r'   r   df_nanr?   r8   r@   s         r   test_stack_nan_levelz/TestStackUnstackMultiLevel.test_stack_nan_level,
  s5   
 IIaL  A&**rvv
+GW3E AU+**
 <8A.#\2g&E **RVVhBFFX>ugFVE 266]RVVQK#rvvF3*73

 	fh/r   c                    t        j                  dgddgg      }t        dt        j                  ddg      i|      }|j                         }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                  ||       y )Nr{   r   r5   r   r3   r4   r:   r   r5  )r   r   )r   r5   )
r   r<   r   r   r   r#   rf   r9   r$   r%   r   s        r    test_unstack_categorical_columnsz;TestStackUnstackMultiLevel.test_unstack_categorical_columnsK
  s    %%uq!fo6r~~sCj9:#F>>3%S#J?>>3%S#J? %
 &11:z2JK
fh/r   c                    ddg}ddg}g d}t        j                  |||gg d      }t        t        t	        |                  }t        ||dg	      }|j                  d
dg      }|j                  j                  d      |_        d|j                  d d df<   |j                  d
dg|      j                         }|j                  d      j                  d
dg|      j                         }	t        j                  ||	       y )NITAFRAA1A2)CRTDBTNET)PAEVARTYPr   VALUE)ro   r8   r9   rs  rt  r   i'  )A0rq  r   r5   r2  )r   r<   r~   r;   rI   r   r#   r9   rM  rn   r"   r  r$   r=   )
r'   r   rr  rs  rt  r   VDFr?   r@   s
             r   test_stack_unsortedz.TestStackUnstackMultiLevel.test_stack_unsortedZ
  s    
 enTl#$$c3_<QRs2w AR';ZZ'ZZ))!,
#'q- 5%.|DOOQMMqM!UE5>U=Z\ 	
 	vx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                               }|j                  d|      }|j                  t        j                        j                  d|      j                  t        j                               }t        j                  ||       ||j                  d      j                  t        j                               ||j                  d   <   |j                  d|      }t        t        j                  g dt        j                               t        j                  g dt        j                               dt        j                  ||j                  d   g            }d|j                  _        t        j                  ||       y )N5451154515r  t_meanstationelementr   r   r  r   )r     r%     )r%  r  r      )i1     rj  r  r   r   r   )r   rM  rM  g      "@g     s@g     [@rQ   )r  r  r  r  r  r  )r  r}  r:   )r   r<   r   r   r  r   r   
Int64Dtyper"   rl   rm   r$   r%   r9   Float64Dtyper>   rd   )r'   r   r9   r8   arrr)   r?   r@   s           r   test_stack_nullable_dtypez4TestStackUnstackMultiLevel.test_stack_nullable_dtypes
  s   
 ))w#x1)Y9O
 if-hh*,=?STUsG5P),? IIbhhU9<U8VBMMO$ 	
 	fh/ rzz!}-44R__5FG2::a=),?XX9AR ((2"--/	 ))5'..2C*DE

 !*
fh/r   c           	      >   ddgddgddgg}t        j                  |d      }t        dddgi|	      }|j                  d
      }t        dgdggt        j                  dgd d
g      t        j                  ddgddg            }t        j                  ||       y )Nr3   r5   r6   redblue)rF   r   rG   r   ri  r:   rF   )ri  r3   )r5   r  )r6   r  r   rG   r   )r   r  r   r#   rf   r$   r%   )r'   arraysr   r)   r?   r@   s         r   test_unstack_mixed_level_namesz9TestStackUnstackMultiLevel.test_unstack_mixed_level_names
  s    *q!fufo6$$V=AaV}C0CS1#J**J<c{K((*k)B1c(S

 	fh/r   )9r  r  r  rp  r   r  r  r}  r  r  r  r~   r   r   r2  r   r   rf   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  slowr&  r   chainfrom_iterabler;   r/  r3  r6  rA  rD  rG  rN  rX  r[  rc  rg  ri  ry  r  r  rv  r   r   rl  rl    s   ' [[? 01OP>(	 *+CD6"	 *+FG6"		
.0/.0(	3 [[CJ*J*X [[C [[ V #J7"2779299Q<#6#6q#91=wrwwyRS?TU '
&&'OP #JA?			! 3 3A 6:!		)Y7	1-
	
.*/4*& [[C**2 [[C22 [[CYY  [[C
:
: [[C [[X';<8 =8&0 [[C
1
1 [[C M MD [[C	E	E [[CAAC3J-1^ [[C&&6 [[C==  * [[C** [[! !4 [[C [[%% &
&
 	
 [[[%(3* 4*" [[C

$ [[C00* [[C0065" [[C#(#(J0600 [[C008 [[C5H5Hn [[C0080 [[C11, [[C#0#0J0r   rl  c           	          t        g dg dg dgg d      }|j                  |       }t        g dt        t	        d      g dgg d	g d
g            }t        j                  ||       y )Nr   )rD   rP   ru   )rv   rw   r   )r  r  r  r   r   )	r5   r6   r2   rD   rP   ru   rv   rw   r   r2   )	r   r   r   r5   r5   r5   r6   r6   r6   )	r   r5   r6   r   r5   r6   r   r5   r6   r  r:   )r   r"   r
   r   r;   r$   r=   )r   r)   r?   r@   s       r   test_stack_tuple_columnsr  
  sj     
	Iy)3Q
B XX<X0F#!H<=.0KL
H 68,r   zdtype, na_valuer   test_multiindexc                    |r&t        j                  dt        |g|       gz        }nt        |g|       }t        ddgi|      }|j	                         }|r;t        j                  t        |g|       t        |g|       t        dg      g      }n-t        j                  t        |g|       t        dg      g      }t        d|      }t        j                  ||       y )Nr6   rQ   r3   r5   r:   )r   r  r   r   r"   r
   r$   r=   )rR   r  r  r8   r)   r?   r   r@   s           r   test_stack_preserves_nar  
  s     &&qE8*E,J+K'KLxj.	C!:U	+BXXZF#//xj.xj.se
 $//xj.se
 a~.H68,r   )3r   r   r  numpyr   r   pandas._libsr   pandas.errorsr   pandasr   r   r   r   r	   r
   r   r   pandas._testing_testingr$   pandas.core.reshaper   r!  fixturer   r   r  r  r$  rH   r-  r/  r4  r  r<  r  r@  rC  rE  rG  rR  rV  ra  rd  rj  rl  r  r  r  rv  r   r   <module>r     s     	    (     6 e}% &Q0 Q0h( 9i"897, :7,t  rvvlLI	

 GRVV,lLI	

 <'266):LI	

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