
    Mh_|                       S SK J r   S SKrS SKrS SKrS SKrS SKJr  S SKJ	r	  S SK
rS SK
JrJrJrJrJrJrJr  S SKJr  S SKJr  \R2                  " SS/S	9S
 5       r " S S5      r\R8                  R;                  SSS/5      S 5       rS rS r S r!\R8                  RE                  S5      \R8                  R;                  SSS\RF                  /5      S 5       5       r$\R8                  RE                  S5      \R8                  R;                  SSS\RF                  /5      \R8                  R;                  SSS /5      S 5       5       5       r%S r&S r'\R8                  RE                  S5      S 5       r(S r)\R8                  RE                  S5      S 5       r*\R8                  RE                  S5      S 5       r+ " S S 5      r,S! r-\R8                  R;                  S"S\R\                  4S\R\                  4S\R^                  4S#\R^                  4/5      \R8                  R;                  S$SS/5      S% 5       5       r0g)&    )datetimeN)lib)PerformanceWarning)	DataFrameIndex
MultiIndexPeriodSeries	Timedelta
date_range)reshapeTF)paramsc                     U R                   $ N)param)requests    W/var/www/html/env/lib/python3.13/site-packages/pandas/tests/frame/test_stack_unstack.pyfuture_stackr      s    ==    c                   D   \ rS rSrS r\R                  R                  S5      S 5       rS r	\R                  R                  S5      S 5       r
S rS rS	 rS
 rS rS r\R                  R#                  SS/ SQ/ SQ/ SQ/ SQ/\R&                  " / SQSS/S9\R&                  " / SQSS/S94S/ SQ/ SQ/\" SS/SS9\R&                  " / SQ/ SQS94/5      S 5       rS r\R                  R                  S5      S 5       r\R                  R                  S5      S  5       r\R                  R                  S5      S! 5       rS" r\R                  R                  S5      S# 5       rS$ rS% r\R                  R#                  S&\R>                  " S'5      \R>                  " S'5      4\R@                  " S'S(S)9\R@                  " S'S*S(S)9445      S+ 5       r!\R                  R                  S5      S, 5       r"S- r#\R                  R#                  S.S// S0Q\RH                  S1S2/\RH                  S'S3/4S3/ S4Q\RH                  S'S3/\RH                  S1S2/445      S5 5       r%\R                  R#                  S6S7S/\&" S5      /5      S8 5       r'S9 r(S: r)S; r*\R                  R#                  S<S=S>/5      \R                  R#                  S?\+" \," S25      5      5      S@ 5       5       r-\R                  R#                  S<\.R^                  " / SAQ5      5      \R                  R#                  S?\+" \," S5      5      5      \R                  R#                  SBSCSD/5      SE 5       5       5       r0SF r1SG r2SH r3SI r4SJ r5\R                  R                  S5      \R                  R#                  SK/ SLQ/ SMQ/ SNQ/ SOQ/ SPQ/ SQQS/S3/S/S2/S/S/S//S2/S// SRQ/ SSQ/ STQ/ SUQ/ SVQ/ SWQS3S//S2S//SS///5      \R                  R#                  SXSYS/S3S/S3/S3S//45      SZ 5       5       5       r6\R                  R                  S5      S[ 5       r7\R                  R#                  S\S]S^/5      S_ 5       r8\R                  R                  S5      \R                  R#                  S\S]S^/5      \R                  R#                  S`\+" Sa5      / SbQ4\+" Sc5      / SdQ4/5      Se 5       5       5       r9Sf r:\R                  R                  S5      \R                  R                  Sg5      \R                  R#                  Sh/ SiQ\Rv                  " S3S2/S1Sj//5      4/ SkQ\Rv                  " S3S2/S1Sj//5      4/ SMQ\Rv                  " S3S2/S1Sj//5      4/5      Sl 5       5       5       r<\R                  R                  S5      \R                  R#                  SmS3S2/SnSo/SpSqSq4S3S2/SrSs/SpStSu4/5      Sv 5       5       r=\R                  R#                  SXS/S3/5      Sw 5       r>\R                  R#                  SXS/Sx/5      Sy 5       r?Szr@g){TestDataFrameReshape   c                 j   UR                  5       n[        R                  " [        R                  " UR                  5      5      R                  UR                  5      US S & UR                  US9n[        XDS.5      nUR                  5       nUR                  5       n[        R                  " Xc5        [        R                  " US   U5        UR                  S5      nUR                  S5      n	[        R                  " UR                  U5        [        R                  " U	S   R                  U5        g )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_unstack'TestDataFrameReshape.test_stack_unstack   s    		"''"((+,44RXX>1(((5w?@
OO%	!))+
i,
l5126 +&..q1
n..3
/688"=r   9ignore:The previous implementation of stack is deprecatedc           	      $   [        S5      / SQSS//n[        SUS   US   S9nUR                  US9n[        S[        R
                  " US S 5      S9n[        R                  " XE5        [        SUS   [        R
                  " USS  5      S9nUR                  SUS9n[        S[        R
                  " US   US   /5      US   S9n[        R                  " XE5        US	S
/   R                  SUS9nUS	S
/   n[        R                  " XE5        g )N   )r4   ab      r   indexcolumnsr   r:   r5   r6   )	ranger   r"   r
   r   from_productr$   assert_series_equalr%   )r'   r   levelsr)   resultexpecteds         r   test_stack_mixed_level+TestDataFrameReshape.test_stack_mixed_level1   s   
 (MAq62 qq	6!9=|4!:#:#:6"1:#FG
v0 qq	:3J3J6RSRT:3VW!,7Z,,fQi-CDfUVi
 	f/ S#J%%al%CS#J'
f/r   c                 D   [        SS[        R                  /SS[        R                  /S.5      nUS/   nUS   US'   U(       d%  [        UR                  R
                  5      S:X  d   eUR                  5       nUR                  5       n[        R                  " XE5        g )Nr7   r8         @   xyrI   rJ   )	r   r   nanlen_mgrblocksr#   r$   r?   )r'   using_array_managerr)   df2resrB   s         r   test_unstack_not_consolidated2TestDataFrameReshape.test_unstack_not_consolidatedK   s    aBFF^32662BCD#ic7C"sxx'1,,,kkm::<
s-r   c                    [        / SQ[        R                  S9n[        R                  " / SQ5      Ul        UR                  SS9n[        / SQ/ SQS./ S	Q[        R                  S
9n[        R                  " X45        UR                  SS9n[        / SQ/ SQS./ S	Q[        S
9n[        R                  " X45        [        / SQ/ SQ/ SQ/ SQS.5      R                  / S	Q5      nUR                  SS/SS9nSnXg   n[        / SQUR
                  US9n[        R                  " X45        UR                  SS/US9nUR
                  R                  UR
                  R                  5      Ul        UR!                  [        R"                  5      nUR$                  UR
                     n[        R                  " X55        US   n	U	R                  SS/SS9nUS   n[        R                  " X45        g )N)r7   r8   rG      dtype)rI   r5   )rI   r6   )rJ   r6   )zr5   
fill_value)r7   rZ   rU   )r8   rG   rZ   r5   r6   rI   rJ   rY   r:   rW         ?)r7   r`   rU   )r8   rG   r`   r5   r5   r6   )jkrb   r   r7   r8   )rI   rJ   rY   wrI   rJ   r   )re   r6   rb   )r   r   r8   )r:   namer   re   )r
   r   int16r   from_tuplesr:   r#   r   r$   r%   float	set_indexr?   r"   reorder_levelsnamesastypeint64loc)
r'   r   datarA   rB   r)   r,   keyr*   ss
             r   test_unstack_fill&TestDataFrameReshape.test_unstack_fillW   s    l"((3++<

 ,:.oRXX
 	f/ -K0u
 	f/ !iiX

)O
$ 	 JJSzaJ8	>	sC
v0//3*</H44RXX^^D..*RXX&
f) sGC:!4S>
f/r   c                    SS/SS/SS/SS//n[        U[        S	5      [        R                  S
9n[        R
                  " / SQ5      Ul        UR                  SS9n/ SQ/ SQ/ SQ/n[        U[        S5      [        R                  S9n[        R
                  " / SQ5      Ul        [        R                  " X45        US   R                  [        R                  5      US'   US   R                  [        R                  5      US'   UR                  SS9nUS   R                  [        R                  5      US'   US   R                  [        R                  5      US'   [        R                  " X45        UR                  SS9n/ SQ/ SQ/ SQ/n[        U[        S5      [        S9n[        R
                  " / SQ5      Ul        [        R                  " X45        g )Nr7   r8   r4   rG   rU            AB)r;   rW   rX   rZ   r[   )r7   r4   r8   rG   )rZ   rU   rZ   rv   )rw   rZ   rx   rZ   xyzr_   )Ar5   )r|   r6   )Br5   r}   r6   r|   r}   r`   )r`   rU   r`   rv   )rw   r`   rx   r`   )r   listr   int32r   rh   r:   r#   r;   r$   r%   rm   rg   float64ri   )r'   rowsr)   rA   rB   s        r   test_unstack_fill_frame,TestDataFrameReshape.test_unstack_fill_frame   s   AAAA/tT$Zrxx@))<
 r*nn=TeBHHE%11<
 	f/ S'..*3S'..,3r* ,,RXX6 ,,RZZ8
f/ s+.0@ATeEB%11<
 	f/r   c                    [        SSS9R                  n[        U5      n[        R                  " / SQ5      Ul        UR                  5       n[        US   [        R                  US   /US   US   [        R                  /S	./ S
QS9n[        R                  " X45        UR                  US   S9n[        US   US   US   /US   US   US   /S	./ S
QS9n[        R                  " X45        g )N
2012-01-01rG   periodsrX   r   r4   r7   r8   r]   r^   r<   r[   )r   valuesr
   r   rh   r:   r#   r   pdNaTr$   r%   )r'   dvrp   rA   rB   s        r    test_unstack_fill_frame_datetime5TestDataFrameReshape.test_unstack_fill_frame_datetime   s    a077bz++<

 a5"&&"Q%(1r!ubff/EF!
 	f/A/a5"Q%A'r!ubeRU.CD!
 	f/r   c                    [        S5       Vs/ s H  n[        US9PM     nn[        U5      n[        R                  " / SQ5      Ul        UR                  5       n[        US   [        R                  US   /US   US   [        R                  /S./ S	QS
9n[        R                  " XE5        UR                  US   S9n[        US   US   US   /US   US   US   /S./ S	QS
9n[        R                  " XE5        g s  snf )NrG   )daysrX   r   r4   r7   r8   r]   r^   r<   r[   )r=   r   r
   r   rh   r:   r#   r   r   r   r$   r%   )r'   itdrp   rA   rB   s         r   !test_unstack_fill_frame_timedelta6TestDataFrameReshape.test_unstack_fill_frame_timedelta   s    ).q2AiQ2bz++<

 a5"&&"Q%(1r!ubff/EF!
 	f/A/a5"Q%A'r!ubeRU.CD!
 	f/% 3s   C>c                    [        S5      [        S5      [        S5      [        S5      /n[        U5      n[        R                  " / SQ5      Ul        UR                  5       n[        US   S US   /US   US	   S /S
./ SQS9n[        R                  " X45        UR                  US   S9n[        US   US   US   /US   US	   US   /S
./ SQS9n[        R                  " X45        g )Nz2012-01z2012-02z2012-03z2012-04rX   r   r4   r7   r8   r]   r^   r<   r[   )	r	   r
   r   rh   r:   r#   r   r$   r%   )r'   r   rp   rA   rB   s        r   test_unstack_fill_frame_period3TestDataFrameReshape.test_unstack_fill_frame_period   s     9999	
 g++<

 1:tWQZ0
GAJPT7UV!
 	f/4aj'!*gaj9aj'!*gaj9 "
 	f/r   c           	         [        / SQSS9n[        R                  " / SQ5      Ul        UR	                  5       n[        [        R                  " [        S5      [        S5      S9[        R                  " [        S5      [        S5      S9S	.[        S
5      S9n[        R                  " X#5        Sn[        R                  " [        US9   UR	                  SS9  S S S 5        UR	                  SS9n[        [        R                  " [        S5      [        S5      S9[        R                  " [        S5      [        S5      S9S	.[        S
5      S9n[        R                  " X#5        g ! , (       d  f       N= f)Nr5   r6   cr5   categoryrV   rX   axaabc
categoriesbcxr]   rz   r<   z9Cannot setitem on a Categorical with a new category \(d\)matchdr[   r   acabcc)r
   r   rh   r:   r#   r   r   Categoricalr   r$   r%   pytestraises	TypeError)r'   rp   rA   rB   msgs        r   #test_unstack_fill_frame_categorical8TestDataFrameReshape.test_unstack_fill_frame_categorical   s   **=++<


 ^^DKDKH^^DKDKH u+
 	f/ K]]9C0LLCL( 1 -^^DKDKH^^DKDKH u+
 	f/ 10s   E))
E7c           	          [         R                  " / SQ/ SQ/SS/S9n[        S/S-  S/S-  S	.US
9nUR                  S5      n[        / SQ/ SQ/ SQ/[         R                  " / SQS S/S9[        / SQSS9S9n[        R                  " X45        g )Nr5   r6   r   r7   r8   r4   r{   r~   rl   r7   	   r8   r   er<   )r7   r7   r7   r8   r8   r8   )r   r5   r   r6   )r   r   r   r5   r   r6   )r   r   rf   r;   r:   )r   r>   r   r#   rh   r   r$   r%   r'   idxr)   rA   rB   s        r   $test_unstack_tuplename_in_multiindex9TestDataFrameReshape.test_unstack_tuplename_in_multiindex  s    %%i(Z0H
 aS1WA3733?J'!35GH** Z(
 	
3
 	f/r   z>unstack_idx, expected_values, expected_index, expected_columnsr{   )r7   r7   r8   r8   ))r7   r4   )r7   rG   r8   r4   )r8   rG   r}   Cr   )r   r   r   r   N)r{   r}   )r7   r7   r7   r7   r8   r8   r8   r8   r4   rG   r   ))r   r5   r7   )r   r5   r8   )r   r6   r7   )r   r6   r8   )r   r5   r7   )r   r5   r8   )r   r6   r7   )r   r6   r8   )Nr{   r}   c                     [         R                  " SS/SS/SS/// SQS9n[        S/S	-  S/S	-  S
.US9nUR                  U5      n[        X$US9n[        R
                  " Xx5        g )Nr5   r6   r7   r8   r4   rG   )r{   r}   r   r   rx   r   r<   r   )r   r>   r   r#   r$   r%   )	r'   unstack_idxexpected_valuesexpected_indexexpected_columnsr   r)   rA   rB   s	            r   *test_unstack_mixed_type_name_in_multiindex?TestDataFrameReshape.test_unstack_mixed_type_name_in_multiindex1  sz    L %%3Z!Q!Q(0F
 aS1WA3733?K(^
 	f/r   c                    [        / SQ/ SQ[        / SQ5      R                  S5      [        R                  R                  S5      R	                  S5      SS[        R                  " S5      [        / S	Q5      R                  S
5      [        / SQ5      R                  S5      S[        / SQ5      R                  S5      S.5      nS nUR                  SS/5      nU" US5        UR                  SS/5      nU" US5        UR                  SS/5      nU" US5        UR                  / SQ5      nU" US5        UR                  SS/5      nU" US5        UR                  SS/5      nUS   nU" US5        g )N)ILMINCr   r   r8   r4   r7   r   20010102)      ?      I@g      Y@float32)rF         @      @r   F)r7      i2 int8)stater:   some_categoriesr|   r}   r   DEFGHc                 v    U R                  U/5      nU R                  U5      n[        R                  " X#5        g r   r#   r$   r%   )r)   column_name
unstacked1
unstacked2s       r   unstack_and_compareNTestDataFrameReshape.test_unstack_preserve_dtypes.<locals>.unstack_and_comparet  s.    [M2JK0J!!*9r   r   r:   r   r   r   )r   r}   r   r}   r   r|   )	r   r
   rm   r   randomdefault_rngr   	Timestamprj   )r'   r)   r   df1rr   s        r   test_unstack_preserve_dtypes1TestDataFrameReshape.test_unstack_preserve_dtypesb  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           	         [         R                  " [        [        R                  " [        S5      SS95      5      n[        [        R                  R                  S5      R                  S5      US9n[        R                  " UR                  SS/US9UR                  SUS9R                  SUS95        [        R                  " UR                  SS	/US9UR                  SUS9R                  SUS95        UR                  5       nUR                  R!                  [        S5      S
S9nUb   e[        R                  " UR                  SS/US9UR                  SUS9R                  SUS95        g )Nr4   repeatr8   )r      r;   r7   levelr   rZ   T)inplace)r   rh   r   	itertoolsproductr=   r   r   r   r   standard_normalr$   r%   r"   r   r;   	set_names)r'   r   r;   r)   df_namedreturn_values         r   test_stack_ints$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                    [         R                  " / SQ/ SQS9n[        [        R                  R                  S5      R                  S5      US9nUR                  SS/US	9nUR                  S
S/US	9nUR                  5       n/ SQUR                  l
        [        R                  " UR                  SS/US	9USS9  [        R                  " UR                  S
S/US	9USS9  Sn[        R                  " [        US9   UR                  SS/US	9  S S S 5        UR                  5       n/ SQUR                  l
        [        R                  " UR                  SS/US	9USS9  g ! , (       d  f       NX= f)N)r|   catlong)r}   r   r   )r|   dogshort)r}   r   r   expanimalhair_lengthr   r8   rG   rG   r   r   r  r   r   )r   r   r7   r7   Fcheck_nameszSlevel should contain all level names or all level numbers, not a mixture of the twor   r   )r   r   r   )r   rh   r   r   r   r   r   r"   r   r;   rl   r$   r%   r   r   
ValueError)	r'   r   r;   r)   animal_hair_stackedexp_hair_stackedrP   r   df3s	            r   test_stack_mixed_levels,TestDataFrameReshape.test_stack_mixed_levels  sq    (( 3
 II!!!$44V<g
 !hh]+, ' 
 88-(| $ 
 ggi0
IIXqMIE	

 	IIUAJ\IB	
# 	 ]]:S1IIXqMIE 2
 ggi0
IIXqMIE	
 21s   >E##
E1c                 b   [         R                  " / SQ/ SQS9n[        [        R                  R                  S5      R                  S5      US9nUR                  SS/US	9nUR                  SS
/US	9nUR                  SS
/US	9nUR                  5       n/ SQUR                  l
        [        R                  " UR                  SS/US	9USS9  [        R                  " UR                  SS/US	9USS9  [        R                  " UR                  SS/US	9USS9  UR                  5       n/ SQUR                  l
        [        R                  " UR                  SS/US	9USS9  [        R                  " UR                  SS/US	9USS9  [        R                  " UR                  SS/US	9USS9  g )Nr   r   r   r8   r  r   r   r   r   r  rd   r7   Fr  r   )r8   r   r7   )r   rh   r   r   r   r   r   r"   r   r;   rl   r$   r%   )	r'   r   r;   r)   exp_animal_stackedr  r  rP   r  s	            r   test_stack_int_level_names/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           	      `   [        SS/[        R                  " SS/SS//5      S/S9nUR                  5       n[        [        R
                  " S[        R                  /[        R                  S//[        S9SS/[        R                  " SS/SS//5      S9n[        R                  " X#5        g )	NFr5   r6   r   lcolr9   rV   )
r   r   from_arraysr#   r   arrayrK   objectr$   r%   )r'   r)   rsxps       r   test_unstack_bool&TestDataFrameReshape.test_unstack_bool(  s    EN((3*sCj)ABG

 ZZ\HHubffo7vF***UENS#J+GH

 	b%r   c           	         [        SS/SS/SS/// SQ/ SQ/ S	Q// S
QS9n[        SUS9nUR                  SS/5      R                  SUS9n[        SS/SS/// SQ/ SQ/SS/S9n[	        [
        R                  " S[
        R                  /[
        R                  S/S[
        R                  /[
        R                  S//[
        R                  S9U[        SS/SS9S9n[        R                  " XF5        g )Nr   r   onetwor5   r6   r   r   r7   r7   r   r7   r   r7   )r7   r   r7   r   )firstsecondthirdr@   codesrl   r   r<   r7   r8   r   r  r  rV   r   r   r9   )r   r
   r#   r"   r   r   r  rK   r   r   r$   r%   )r'   r   mirr   rA   expected_mirB   s          r   test_unstack_level_binding/TestDataFrameReshape.test_unstack_level_binding6  s    
 ENUENS#J?|<.

 1BAq6"(((F ENUEN3.H%
 HHRVVrvvqkArvv;DBJJ 3*73
 	f/r   c                    UR                  5       n[        U[        5      (       d   eUR                  5       R                  n[        R
                  " X15        [        SS[        R                  /SS[        R                  /S.5      n[        / SQ5      Ul
        UR                  5       n[        SS// SQ// S	Q/ S
Q/S9n[        SS[        R                  SS[        R                  /US9n[        R                  " XF5        UR                  5       n[        S5       H  nUR                  5       nM     [        R
                  " Xr5        g )Nr7   r8   rF   rG   rH   r   rI   rJ   )r   r   r   r7   r7   r7   )r   r7   r8   r   r7   r8   r@   r"  r4   r<   )r#   
isinstancer
   r&   r$   r%   r   r   rK   r   r:   r   r?   r   r=   )	r'   r(   rp   undorA   midxrB   old_data_s	            r   test_unstack_to_series+TestDataFrameReshape.test_unstack_to_seriesS  s   ""$$''''||~
d0 1bff~S!RVV4DEF?+
#J0%'9:
 1aArvv6dC
v0 99;qA<<>D 
h-r   c                 V   / SQ/ SQ/ SQ/ SQ/n[        U[        S5      S9nUR                  n[        [        R
                  " S5      /S-  [        S5      S	9n[        R                  " XE5        UR                  S
S/5      nUR                  S5      nUR                  n[        [        R
                  " S5      /S-  [        R                  " / SQ/ SQ/SS9S	9n[        R                  " XE5        UR                  S
S/5      nSUS'   UR                  S5      nUR                  n[        [        R
                  " S5      /S-  [        R
                  " S5      /S-  -   [        R                  " / SQ/ SQ/SS9S	9n[        R                  " XE5        SUS'   UR                  S5      nUR                  nU(       a  SO[        R
                  " S5      n[        [        R
                  " S5      /S-  U/S-  -   [        R                  " / SQ/ SQ/SS9S	9n[        R                  " XE5        g )N)r7   r7   r4   rG   r7   r8   r4   rG   )r8   r7   r4   rG   )r8   r8   r4   rG   ABCDr   rn   rG   r<   r|   r}   )r   r   r   r   )r7   r8   r7   r8   )Nr}   r   rF   r   r   r8   r   r   stringr  )r   r   dtypesr
   r   rW   r$   r?   rj   r#   r   r  )	r'   using_infer_stringr   r)   rA   rB   rP   r  rW   s	            r   test_unstack_dtypes(TestDataFrameReshape.test_unstack_dtypesn  s   lL,GtT&\2288G,-1fF
v0 llC:&kk#XXg!#((%|4K
 	v0 llC:&Ckk#XXi !A%'):(;a(??((%|4K
 	v0Ckk#.BHHX4FXXi !A%!3((%|4K
 	v0r   zc, drU   f8rV   
   c           
         [        S/S-  UU[        SSS9S.5      nUR                  S S R                  SS9nUR	                  S	S
/5      nUS   R                  S5      US'   UR                  S S R                  S5      nUR	                  S	S
/5      R                  S5      nUS   R                  S5      US'   UR                  S:X  d   e[        R                  " XT5        g )Nr5   rU   r   r   )r|   r   r   r}   r4   T)deepr|   r}   r   rn   r   )r   r5   )r4   r8   )
r   r   ilocr   rj   rm   r#   r!   r$   r%   )r'   r   r   r)   rightlefts         r   test_unstack_dtypes_mixed_date3TestDataFrameReshape.test_unstack_dtypes_mixed_date  s     UQYa8	
   d +\\3*%S'..)3wwr{""1%c
+33A6!*-44W=jzzV###
d*r   c                 t   [         R                  " SS/SS/S9n[        SS/US9nSn[        R                  " [
        US	9   UR                  S5        S S S 5        [        R                  " [
        US	9   UR                  R                  SUS
9  S S S 5        g ! , (       d  f       NK= f! , (       d  f       g = f)Nr]   )r   r   c1r   r7   r8   r<   z5The name c1 occurs multiple times, use a level numberr   r   )	r   rh   r   r   r   r  r#   r&   r"   )r'   r   r   r)   r   s        r   #test_unstack_non_unique_index_names8TestDataFrameReshape.test_unstack_non_unique_index_names  s     $$j*%=dD\R1vS)E]]:S1JJt 2 ]]:S1DDJJt,J7 21 21 21s   B4B)
B&)
B7c                 \   [         R                  " S// SQ/5      S S n[        SS//S-  US9nUR                  5       n[         R                  " SS// SQ/5      n[        / S	Q/S/US
9n[        R
                  " X55        UR                  R                  S   UR                  S   :H  R                  5       (       d   e/ SQ/ SQ/n/ SQ/ SQ/n[        Xg5      n[        R                  " S5      R                  SS5      n[        [        R                  " XS-   /5      US9nUR                  5       n[        [        R                  " US-  US-  S-   /SS9US9n[        R
                  " X55        UR                  R                  S   UR                  S   :H  R                  5       (       d   eg )Nr5   )r|   r}   r   r   rZ   r7   r   r4   r<   r|   r}   r   )r7   r7   r7   r   r   r   r9   )r   r7   rw   r   r7   r8   r4   r  r   r8   r   r8   rG   r8   axisr   )r   r>   r   r#   r$   r%   r;   r@   allr   r   r   concatenate)	r'   r   r)   rA   exp_colrB   r@   r"  blocks	            r   test_unstack_unused_levels/TestDataFrameReshape.test_unstack_unused_levels  s{   %%u.B&CDSbIAx!|3/))Aq6?*CD01#P
f/%%a(CJJqM9>>@@@@ \*|,'		!$$Q*r~~uai&89ENNEAIuqy1}5A>
 	f/%%a(CJJqM9>>@@@@r   z"level, idces, col_level, idx_levelr   )      rv   r   r8   rU   rx      r5   r8   r7   )rx   rS  r7   rG         rQ  rR  c                    / SQ/ SQ/n/ SQ/ SQ/n[        XV5      n[        R                  " S5      n[        UR	                  SS5      US9n	U	R                  US	9n
[        R                  " S
5      [        R                  -  nXU'   [         R                  " SS/U/5      n[        UR	                  SS5      XLS9n[        R                  " X5        g )N)r5   r8   r   )r7   r4   rU   rw   )r   rZ   r7   r7   )r   r8   rZ   r8   rx   rG   r8   r<   r      r   r7   r4   rv   r9   )r   r   r   r   r   r#   zerosrK   r>   r$   r%   )r'   r   idces	col_level	idx_levelr@   r"  r   rp   r)   rA   exp_datacolsrB   s                 r   )test_unstack_unused_levels_mixed_with_nan>TestDataFrameReshape.test_unstack_unused_levels_mixed_with_nan  s      ..'yy|t||Aq)5%(88B<"&&(&&A	':;X--a39S
f/r   r^  r|   c                    [        / SQ/ SQ// SQS9nUR                  / SQSS9nUR                  [        S 5      [        S 5      S4U4   nUR	                  5       nUR
                  S/   U   n[        R                  " UR                  S//S S	/S
9Ul        UR                  R                  S	5      Ul	        [        R                  " XV5        g )N)i  r5   I)i  r6   IIrF  r   F)droprb  r   r   r   )r   rj   ro   slicer#   r<  r   r>   r;   r:   	droplevelr$   r%   )r'   r^  r)   ind	selectionrA   rB   s          r   test_unstack_unused_level.TestDataFrameReshape.test_unstack_unused_level  s     (*;<oVll?l7GGU4[%+s;TAB	""$88QC=&%22u%dC[
 "11#6
f/r   c           	      (   [        S//[        R                  " S//S/S9[        R                  " / SQ// SQS9S9nUR                  / SQ5      n[        S//[        R                  " / SQ// S	QS9[	        S/S
S9S9n[
        R                  " X#5        g )Nr7   r   rB  r   )r   r   r7   r   r   r   r7   )i1i2i3i4i5i6i7r   )rm  rn  ro  rp  rq  rr  )rB  rm  rn  ro  rp  rq  rr  rl  r   )r   r   rh   r#   r   r$   r%   r'   r)   rA   rB   s       r   test_unstack_long_index,TestDataFrameReshape.test_unstack_long_index  s     SE**QC5?((&'@
 @ASE**&'@ $'
 	f/r   c           	          [        SS/SS//[        R                  " SS/SS//SS/S9[        R                  " / SQ/ S	Q// S
QS9S9nUR                  SS/5      R                  R
                  SS  SS/:X  d   eg )N        r}   r   r   rB  c2r   )r9     r   )r9  ry  (   rl  rm  rn  r   rm  rl  r   )r   r   rh   r#   r;   rl   )r'   r)   s     r   test_unstack_multi_level_cols2TestDataFrameReshape.test_unstack_multi_level_cols  s    3Z#s$**sc3Z(t ((|,4F
 zz4,'//55bc:tTlJJJr   c                 >   [        SS/SS/SS/SS//[        R                  " / S	Q/ S
Q/5      [        R                  " / SQ/ SQ/ SQ/ SQ// SQS9S9nUR                  SS/5      nUR                  S/5      R                  S/5      n[        R
                  " X#5        g )Nr7   r8   r4   rG   rZ   r   r   )r   r   f)m1P3   )r  A5o   )m2r  r  )r  r  r  r{  r   r   rn  rm  )r   r   rh   r#   r$   r%   rs  s       r   &test_unstack_multi_level_rows_and_cols;TestDataFrameReshape.test_unstack_multi_level_rows_and_cols)  s    VaVb"XBx0**O_+MN((%%%%	 )
 T4L)::tf%--tf5
f/r   r   jimjoe)r  r  levc                 Z   S n[        SS[        R                  S// SQ/ SQS.5      nUR                  SS	/5      R	                  5       S
   nUR                  S	S/5      R	                  5       S
   R
                  n[        R                  " XV5        UR                  [        U5      5      nUR	                  US9nUR                  5       R                  R                  5       [        U5      :X  d   eS n	US
   R                  5       R                  R                  5       u  p[        X5       H|  u  p[        US
   R                   X4   R#                  S5      5      nU	" US
   R$                  U   5      U	" US
   R&                  U   5      -   n[        [)        X65      5      nXV:X  a  M|   e   g )Nc                     X :w  a  SOU nUS $ N 1 valval_strs     r   cast:TestDataFrameReshape.test_unstack_nan_index1.<locals>.cast@      JbCGa[!r   r5   r6   r   )re   rI   rJ   rY   )za.wzb.xz .yzd.z)r  r  jolier  r  r  rW  c                 H    [        U [        5      (       a  [        U 5      $ U /$ r   r)  tupler   r5   s    r   <lambda>>TestDataFrameReshape.test_unstack_nan_index1.<locals>.<lambda>S      z!U';';DGD!Dr   .)r   r   rK   rj   r#   r&   r$   r%   r   notnar   sumrL   nonzerozipsortedr<  splitr:   r;   map)r'   r   r  r  r)   r>  r=  r#  udfmk_listr   r^  r   rb   s                 r   test_unstack_nan_index1,TestDataFrameReshape.test_unstack_nan_index1<  sw   	" S"&&#.+5
 ||UEN+335g>eU^,446w?AA
d*\\$s)$jjsj#yy{!!%%'3r7222D\'')0088:
ODA#g,++AD177<=DCL..q12WS\=Q=QRS=T5UUE3t+,E= =	 $r   1st2nd3rdr  4th5thc                   ^ S m[        S/S-  [        R                  /S-  -   S/S-  -   S/S-  -   S/S-  -   S	/S-  -   S
/S-  S/S-  -   [        R                  /S-  -   S/S-  -   [        R                  /S-  -   S/S-  -   [        R                  /S-  -   / SQS.5      nUR                  U4S jSS9UR                  U4S jSS9sUS'   US'   UR	                  [        U5      5      nUR                  US9nUR                  5       R                  R                  5       S[        U5      -  :X  d   eS nXc   R                  5       R                  R                  5       u  p[        X5       Hz  u  p[        Xc   R                  X4   R                  S5      5      nU" Xc   R                   U
   5      U" Xc   R"                  U   5      -   n[        [%        TU5      5      nX:X  a  Mz   e   g )Nc                     X :w  a  SOU nUS $ r  r  r  s     r   r  ATestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.cast_  r  r   r   r4   rU   r5   r8   r   r   r6   rJ   re   rY   rG   rI   )C   '   5   H   9   P      rX  rS  r   ;   2   >   r  L   4      r  <   3   r  c                 :   > SR                  [        TU 5      5      $ )Nr  )joinr  rr  s    r   r  ETestDataFrameReshape.test_unstack_nan_index_repeats.<locals>.<lambda>  s    sxxD!5r   r7   rI  c           	      Z   > SR                  [        TU R                  S S S2   5      5      $ )Nr  rZ   )r  r  r<  r  s    r   r  r    s!    sxxD!&&2,(?@r   r  r  rW  c                 H    [        U [        5      (       a  [        U 5      $ U /$ r   r  r  s    r   r  r    r  r   r  )r   r   rK   applyrj   r   r#   r  r   r  rL   r  r  r  r<  r  r:   r;   r  )r'   r   r  r  r)   r#  r  r  r   r^  r   rb   r>  r=  r  s                 @r   test_unstack_nan_index_repeats3TestDataFrameReshape.test_unstack_nan_index_repeats[  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
ODA#(---33C89DCHNN1-.9I9I!9L1MME3tU+,E= =	 $r   c           
         [        [        S5      [        S5      [        S5      S.5      nUR                  SS05      n[        R
                  UR                  S'   UR                  SS/5      R                  S5      nS	SS
S[        R
                  [        R
                  [        R
                  [        R
                  /[        R
                  [        R
                  [        R
                  [        R
                  SSSS//n[        [        [        [        U6 5      5      n[        [        R
                  SS
SSSSS/SS9n[        S/SS//SS/SS
//S S/S9n[        X5US9n[        R                  " X&5        [        [        S5      [        [        S5      5      S-  [        S5      S.5      nUR                  SS05      n[        R
                  UR                  S'   UR                  SS/5      R                  S5      nS[        R
                  /SS/S
S/[        R
                  S/S	S//n[        S/SS//SS/SS
//S S/S9n[        [        R
                  SS
SS	/SS9n[        X5US9n[        R                  " X&5        [        [        S5      [        [        S5      5      S-  [        S5      S.5      nUR                  SS05      n[        R
                  UR                  S'   UR                  SS/5      R                  S5      nS	[        R
                  /SS/S
S/SS/[        R
                  S//n[        S/SS//SS/SS
//S S/S9n[        [        R
                  SS
SS	/SS9n[        X5US9n[        R                  " X&5        g )Naaaabbbbrx   rF  r}   ri   r4   r7   r|   r   r4   r7   r8   rG   rU   rv   rw   r   r   r5   r6   r!  r   )r8   r7   )r   r   r=   rm   r   rK   r<  rj   r#   r  r  r   r   r$   r%   )r'   r)   r>  valsr   r^  r=  s          r   test_unstack_nan_index2,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
d*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
d*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
d*r   c           	         [        [        S5      [        SSS9R                  5       S-  [        R
                  " S5      S.5      n[        R                  UR                  S'   UR                  S	S
/5      R                  5       n[        R                  " SSSS[        R                  S/[        R                  SSSSS//5      n[        SS/S	S9n[        S/[        SSS9// SQ/ SQ/S S
/S9n[        XFUS9nU(       a3  UR                  / SQ   nXv   R                  US   R                  5      Xv'   [         R"                  " X75        g )N
aaaaabbbbbr   rU   r   r8   r9  rF  r  r|   r}   r4   r   r7   rG   rv   rw   rx   r   r5   r6   r   r   )r   r   r   r   r   r   )rZ   r   r7   r8   r4   rG   r!  r   )r7   r8   r4   rU   )r   r   r   tolistr   r   rK   r<  rj   r#   r  r   r   r;   rm   rW   r$   r%   )r'   rO   r)   r>  r  r   r^  r=  s           r   test_unstack_nan_index3,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==.D+,,RW]];EK
d*r   c                    S[         R                  [         R                  S/SS[         R                  S/SS[         R                  S// SQ/ SQ/ S	Q/n[        U/ S
Q/ SQS9nUR                  5       R	                  / SQ5      R                  5       n[         R                  [         R                  S[         R                  S/SS[         R                  S[         R                  //n[        SS/S//SS/SS//SS/S9n[        S// SQ// SQ/ SQ/S S/S9n[        XUS9n[        R                  " X65        UR                  SS  R                  5       R	                  / SQ5      n[        R                  " UR                  5       U5        g )NHgi(Urw  Pbg	VZ>)Sn@>]K=?)=()Agrw  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   r7   rZ   r  r  r!  r  )r  r  r  r  r  )r   r   r   r   r   r   r7   r8   r4   rG   r  r  )
r   rK   r   r   rj   r#   r   r$   r%   ro   )r'   r  r)   r>  r   r^  r=  s          r   test_unstack_nan_index4,TestDataFrameReshape.test_unstack_nan_index4  sg    2662669-#rvvy)8RVVY/1*/
 9<
 wwy""#>?GGI VVRVVXrvvs3(BFFJ7

 	*VH5q6B7#8$
 J =>"O4/
 $C8
d*vvef~""$../JK
dllne4r   c           	         [        / SQ[        SSSS9S[        R                  " S5      -   [        R                  R                  S5      R                  S5      S-  R                  S5      S	.5      nUS
   [        R                  " S5      -
  US'   [        R                  =UR                  S'   UR                  S'   [        R                  =UR                  S'   UR                  S'   UR                  / SQ5      R                  S
S/5      nUR                  5       R                  R!                  5       S[#        U5      -  :X  d   eS HB  nUR%                  5        H+  u  pEUS   X5S
   US   44nXS   UR                  U   :X  a  M+   e   MD     g )N)r7   r8   r7   r8   r7   r8   z
2014-02-01rv   r   )r   freqd   r8   r9  )r  r  r  r  r  z
2014-02-02r  )r7   r  )r4   r  )r7   r  )rG   r  r  r  r  )r   r   r   r   r   r   r   roundr   r   rK   ro   rj   r#   r  r   r  rL   iterrows)r'   r)   r>  r  r-  r  rq   s          r   test_unstack_nan_index5,TestDataFrameReshape.test_unstack_nan_index5  sS   )!,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hh% 99v#... & "r   c                    [        SSS5      n[        / SQ[        R                  " USS4/5      S9nU(       a  S O[        nSn[
        R                  " XES9   UR                  US	9nS S S 5        [        R                  " S
S/5      n[        R                  " US4/5      n[        / SQXxS9n	[
        R                  " WU	5        g ! , (       d  f       Nc= f)Ni  r7   r1  r|   r}   r   z2The previous implementation of stack is deprecatedr   r   rG  )r}   r9   )
r   r   r   rh   FutureWarningr$   assert_produces_warningr"   r>   r%   )
r'   r   tr)   warnr   rA   eidxecolsrB   s
             r   %test_stack_datetime_column_multiIndex:TestDataFrameReshape.test_stack_datetime_column_multiIndex(  s    T1a |Z-C-Cac]O-TU#tB''8XX<X8F 9 &&f'=>&&Cz2\E
fh/ 98s   C
Cmultiindex_columnsr  rG  )r   r7   r8   rG   rd   r   )r8   r4   rG   )rG   r4   r8   r7   r   )r4   r8   r7   r   )rG   r8   r7   r   )r8   r7   r   )r4   r8   r7   )rG   r4   r8   r   rZ   c                 $   U(       d  SO[         R                  n[        R                  " / SQSS/S9nXQ   n[	        [
        R                  " S[        U5      -  5      R                  S[        U5      5      US9nUR                  X$US9n[        U[        5      (       aZ  U(       dS  UR                  US	US9n	[        U	[        5      (       a  [        R                  " X5        O[        R                  " X5        [        R                  " UR                   R#                  5       UR                   R$                  S9Ul        UR                  X$US9n	[        U	[        5      (       a  [        R                  " X5        g [        R                  " X5        g )
NF)r}   rI   )r}   rY   )r|   rJ   )r   rI   )r   uUpperLowerr   r4   r   )r   dropnar   T)r   
no_defaultr   rh   r   r   r   rL   r   r"   r)  intr
   r$   r?   r%   r;   to_numpyrl   )
r'   r  r   r   r  full_multiindex
multiindexr)   rA   rB   s
             r   test_stack_partial_multiIndex2TestDataFrameReshape.test_stack_partial_multiIndex6  s7   @ +$00HG$
 %8
IIa#j/)*221c*oF
 <PeS!!, xxeD|xTH(F++&&v8%%f7++JJ!)9)9

 88%\8Rh''""64!!&3r   c           	         [         R                  " / SQSS/S9n[        [        R                  " S5      R                  SS5      U/ SQ   S	9nU(       d  S
O[        R                  nUR                  XAS9n[        SS/S[        R                  /SS/S[        R                  //[        SS// SQ// SQ/ SQ/S S/S9[        SS/SS9S9nUS   R                  UR                  R                  S   5      US'   [        R                  " XV5        g )Nr  r  r  r   rv   r8   r4   )r   r7   r4   r   Fr  r   r   r7   rU   rG   )r   rI   rJ   rY   r  )r7   r4   r7   r4   r!  r}   r   r   r9   )r   rh   r   r   r   r   r   r  r"   rK   r   rm   r4  r<  r$   r%   )r'   r   r  r)   r  rA   rB   s          r   test_stack_full_multiIndex/TestDataFrameReshape.test_stack_full_multiIndexu  s    
 %00HG$
 ryy|++Aq1?9;UV*CVa[1a&1bff+6A 45#\2Wo
 3*73
 !,,RYY^^A->?
f/r   orderedFTc                    [         R                  " [        S5      [        S5      US9n[        / SQ/US9nUR	                  US9n[
        R                  " UR                  U/5      n[        / SQUS9n[        R                  " XW5        g )Nyxzrz   r   r  )r9  rS  rT  r   r   r<   )r   CategoricalIndexr   r   r"   r   r>   r:   r
   r$   r?   )r'   r  r   cidxr)   rA   r+  rB   s           r   %test_stack_preserve_categorical_dtype:TestDataFrameReshape.test_stack_preserve_categorical_dtype  st     ""4;4;PWX~t4|4 &&$'78,d3
v0r   zlabels,datarz   )r9  rS  rT  rQ  r  rU  zyx)r  rU  rT  rQ  r9  rS  c                    [         R                  " U[        U5      US9n[         R                  " SS/US9n[        R                  " XV/5      n[        [        U5      /US9nUR                  SS/US9n	U(       a  UO
[        U5      n[         R                  " X!S9n
U(       a  [        U5      OUn[        U[        R                  " S/X/5      S	9n[        R                  " X5        g )
Nr  r   v)r  r   r   r7   r   r<   )
r   r  r  r   r>   r   r"   r
   r$   r?   )r'   r  labelsrp   r   r  cidx2r+  r)   rA   s_cidxexpected_datarB   s                r   +test_stack_multi_preserve_categorical_dtype@TestDataFrameReshape.test_stack_multi_preserve_categorical_dtype  s     ""6fVngV##S#J@&&}5t~t41a&|<'VF^$$V=(4t$!8!81#v9M!N
 	v0r   c                    [         R                  " / SQ5      n[        X"S.5      nUR                  US9n[        R
                  " / SQSS//5      n[        [         R                  " / SQ5      US9n[        R                  " XF5        g )	N)r5   r5   r6   r   r|   r}   r   rG  r|   r}   )r5   r5   r5   r5   r6   r6   r   r   r<   )	r   r   r   r"   r   r>   r
   r$   r?   )r'   r   r   r)   rA   r:   rB   s          r   ,test_stack_preserve_categorical_dtype_valuesATestDataFrameReshape.test_stack_preserve_categorical_dtype_values  sp    nn12S+,|4''Sz(BCNNCDE
 	v0r   z4ignore:Downcasting object dtype arrays:FutureWarningzindex, columnsr  r6   )r   r   r8   r4   c                    [        XS9R                  S5      nUR                  US9n[        R                  " UR
                  R                  5       5      n[        UR                  5       XeR                  S9n[        R                  " XW5        [        R                  " UR
                  R                  5      n[        R                  " UR                  5      n	[        R                  " X5        g )Nr9   r7   r   )r   fillnar"   r   rh   r:   r  r;   r$   r%   r   asarrayr"  assert_numpy_array_equal)
r'   r:   r;   r   r)   r*   	new_indexrB   stacked_codesexpected_codess
             r   )test_stack_multi_columns_non_unique_index>TestDataFrameReshape.test_stack_multi_columns_non_unique_index  s     U4;;A>(((5**7==+A+A+CD	i
 	g0

7==#6#67IOO4
##MBr   z,vals1, vals2, dtype1, dtype2, expected_dtyperF   r   Int64Float64r   r   r3  r  c                     [        [        XS9[        X$S9S.5      nUR                  US9nUR                  [        5      R                  US9R                  U5      n	[
        R                  " X5        g )NrV   )r|   r7   )r|   r8   r   )r   r
   r"   rm   r  r$   r%   )
r'   vals1vals2dtype1dtype2expected_dtyper   r)   rA   rB   s
             r   .test_stack_multi_columns_mixed_extension_typesCTestDataFrameReshape.test_stack_multi_columns_mixed_extension_types  so      5 5
 |4IIf###>EEnU 	 	f/r   c                    [         R                  " / SQSS/S9n[        [        R                  " / SQSS9[        R
                  " / SQ5      S	.US
9nUR                  US9nUR                  [        5      R                  US9nUS:X  a&  US	   R                  [        R                  5      US	'   O%US   R                  [        R                  5      US'   [        UR                  R                  /S-  UR                  R                  /S-  -   UR                  S
9n[         R"                  " UR$                  U5        [         R&                  " UR                  [        5      U5        g )N)r|   r   r0  )r}   r7   r5   r6   r   )r   r7   Nr-  rV   ra   r!  r<   rW  r   r9  r8   )r   rh   r   r   r  r   r#   rm   r  r%  NAr
   r|   rW   r}   r;   r$   r?   r4  r%   )r'   r   r:   r)   rA   rB   expected_dtypess          r   "test_unstack_mixed_extension_types7TestDataFrameReshape.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                 p   [         R                  " S/SS//SS/S9n[        SS/SS	//US
S/S9nSUR                  l        [        / SQ/[         R
                  " / SQSS/S9S9nSUR                  l        UR                  5       R                  SS9R                  SUS9n[        R                  " XT5        g )Nr   r   r   r   r>  r   r8   r7   r4   r}   r|   r9   r   )r4   r7   r8   r   ))r   r|   )r   r}   )r   r|   )r   r}   r   rI  )rJ  r   )r   r>   r   r;   rf   rh   r:   r#   	swaplevel
sort_indexr$   r%   )r'   r   r#  r)   rB   rA   s         r    test_unstack_swaplevel_sortlevel5TestDataFrameReshape.test_unstack_swaplevel_sortlevel  s     $$qcC:%6uenMAA'rC:F

N**@PU
 $''Q'/:::O
f/r   r  )A__name__
__module____qualname____firstlineno__r0   r   markfilterwarningsrC   rR   rs   r   r   r   r   r   r   parametrizer   rh   r   r   r   r   r	  r  r  r%  r.  r6  r   rY  r   r?  rC  rO  rK   r_  re  ri  rt  r|  r  r   r=   r  r   permutationsr  r  r  r  r  r  r	  r  r  r  r"  r>   r+  r6  r<  rB  __static_attributes__r  r   r   r   r      s   >$ [[C00.
. [[C,0,0\"0H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+1Z [[XXa["((1+&YYq%ryy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!: [[UI$:$:;P$QR[[UDqN3[[UUEN3;! 4 4 S;!z/+b+8'5R/.0 [[C [[FFFCCCFFF+	
4 [[Wr1a!Q!Q&@A4 B5<4B [[C00* [[Y61 71 [[C [[Y6[[%[23%[23	
1 71&	1 [[C [[ VW[[:22QFS#J3GHI:22QFS#J3GHI:22QFS#J3GHI	
C XC [[C [[6Vc3Z)Y?VeU^WhA	
00  [[Wq!f-? .?. [[Wq%j10 20r   r   rW   r   r.  c                    [         R                  " / SQ5      nU " [        R                  " SS5      X!S9nUR	                  SSS9nU [
        L a  [         R                  " SS	/5      nOS
S/n[        S[        R                  /[        R                  S/S[        R                  /[        R                  S//U[         R                  " / SQ5      US9n[        R                  " XF5        UR	                  SS/SS9nU [
        L a  [         R                  " SS/5      nO[         R                  " SS/5      n[        SS/SS//SS/UUS9n[        R                  " XF5        g )N))r  rY   r6   )r  rJ   r5   )r  rY   r6   )r  rJ   r5   r   r   r_   rZ   F)r   sortr   r6   )r   r5   r6   r5          @rF   r   ))r  rY   )r  rJ   )r  rY   )r  rJ   r;   r:   rW   r7   r8   )r   rY   r6   )r   rJ   r5   )rY   r6   )rJ   r5   r  r  )r:   r;   rW   )	r   rh   r   r   r#   r   rK   r$   r%   )frame_or_seriesrW   r:   objrA   r   rB   s          r   test_unstack_sort_falserT  #  sJ    ""TE "))C-U
HC[[r[.F)#%118X2FG:
rvvRVV}rvvsmD $$D
 H &+[[1vE[2F)#%11=-2PQ%11:z2JK
sc3Z en 	H &+r   c                     [        / SQSS9n [        R                  " / SQ5      U l        U R	                  5       n[        S[        R                  S/SS[        R                  /S.[        S	5      [        S
9n[        R                  " X5        U R	                  SS9n[        / SQ/ SQS.[        S	5      [        S
9n[        R                  " X5        g )Nr   r  rV   rX   r5   r6   r   r]   rz   r_   r   r[   )r5   r   r5   )r6   r   r   )r
   r   rh   r:   r#   r   r   rK   r   r  r$   r%   )rp   rA   rB   s      r   test_unstack_fill_frame_objectrV  I  s    &h7D''8DJ
 \\^FBFFC S"&&'9:5kH
 &+ \\S\)FO4DKvH &+r   c            
      B   [        [        R                  " SSS9/S/S/S/S./ SQS9n U R                  SS/5      R	                  5       n[        [        R                  " SSS9S//[        S/SS	9[        S
S/S//SS/SS//S S/S9S9n[        R                  " X5        g )Nz2017-08-27 01:00:00.709949+0000UTC)tzr5   r6   r   )	timestampr5   r6   r   r   r   rZ  r   r7   r!  r9   )	r   r   r   rj   r#   r   r   r$   r%   )r)   rA   rB   s      r   "test_unstack_timezone_aware_valuesr[  a  s    	,,'HUST		
 -
B \\3*%--/F
,,8U
CS	IJSE$ #&.q6Aq6"+
H &+r   c           	          [        SSSSS9n[        SU0/ SQS9nUR                  U S	9n[        U[	        / SQS/// S
Q/ SQ/S9S9n[
        R                  " X45        g )Nr   2018010120180103zAmerica/New_York)r  startendrY  r|   r   r<   r   rd   r   r   r   r(  )r   r   r"   r
   r   r$   r?   )r   tsr)   rA   rB   s        r    test_stack_timezone_aware_valuesrc  y  sf    	JJCU	VB	C9O	4BXX<X0F
3% 8I@VWH 6,r   r2   r  c                 ,   [         R                  " / [         R                  S9[         R                  " / [         R                  S9/n[        [         R                  [        U/ / /S9S9nU(       aZ  U [        R                  LaG  [        R                  " [        SS9   [        [         R                  S9R                  XS9  S S S 5        g [        [         R                  S9R                  XS9n[        R                  " XC5        g ! , (       d  f       g = f)NrV   r(  )rW   r:   dropna must be unspecifiedr   r  )r   r  rn   r
   r   r   r   r  r   r   r  r   r"   r$   r?   )r  r   r@   rB   rA   s        r   test_stack_empty_framerf    s     hhr*BHHRrxx,HIFBJJjrSUh.WXHcnn4]]:-IJBJJ'--V-W KJ ,22 3 
 	v0 KJs   %D
Dr\   c                    U(       ag  U [         R                  LaT  [        R                  " [        SS9   [        [        R                  S9R                  XS9R                  US9  S S S 5        g [        [        R                  S9R                  XS9R                  US9n[        [        R                  S9n[        R                  " X45        g ! , (       d  f       g = f)Nre  r   rV   r  r[   )r   r  r   r   r  r   r   rn   r"   r#   r$   r%   )r  r\   r   rA   rB   s        r   test_stack_unstack_empty_framerh    s    
 cnn4]]:-IJBHH%++ , gg, KJ BHH%U&U<W
W+ 	
 288,
f/ KJs   2C
Cc                      Sn [         R                  " [        U S9   [        [        R
                  S9R                  5         S S S 5        g ! , (       d  f       g = f)Nz'index must be a MultiIndex to unstack.*r   rV   )r   r   r  r
   r   rn   r#   )r   s    r    test_unstack_single_index_seriesrj    s6    
4C	z	-RXX&&( 
.	-	-s   &A
Ac            	      r   [        SS/SS/SS/SS/SS	/S
.5      n U R                  / SQ5      n U R                  S/SS9n U R                  SSS9R                  SSS9nU R                  SS/SS9n[        / SQ/ SQ/[        SS/SS9[        R
                  " / SQ/ SQS9S9n[        R                  " X!5        g )NAliceBob      #@rx   FTr   femalemale)rf   scoreemployedkidsgender)rf   rr  rs  rt  rt  r[   rr  rs  )rn  rw  rw  rw  )rw  rw  rw  g       @rf   r   ))rq  ro  Fr   )rq  ro  Tr   )rq  rp  Fr   )rq  rp  Tr   )Nrt  rr  rs  r   r9   )r   rj   r#   r   r   rh   r$   r%   )r)   rB   rA   s      r   test_unstacking_multi_index_dfru    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                    [         R                  " SS/SS/S9n[        / SQ/US9nUR                  SU S9n[	        S	S
/SS9n[         R
                  " SS/S S/S9n[        SS/SS//XTS9n[        R                  " X65        g )NrH   )rJ   rY   r5   r   r7   r7   r7   r7   r   r   r   rJ   rY   r   )r   rI   )r   rJ   r7   r9   )r   r>   r   r"   r   rh   r$   r%   )r   r;   r)   rA   new_columnsr(  rB   s          r   2test_stack_positional_level_duplicate_column_namesry    s     %%z:&>sCjQG	L>7	3BXXalX3Fc
-K&&(';D#;OI1a&1a&)PH&+r   c                 R   [         R                  " [        S5      / SQ/5      n[        [        R
                  R                  S5      R                  S5      [        R
                  R                  S5      R                  S5      R                  [        R                  5      [        R
                  R                  S5      R                  S5      [        R
                  R                  S5      R                  S5      S.US9nU (       d-  [        S UR                  R                   5       5      (       d   eUR                  5       n[        R                  " [        S5       Vs/ s H  oBU   R                  5       PM     sn[        S5      S	S
9n[         R"                  " X55        g s  snf )NrU   rF  r8   rU  rG  r<   c              3   V   #    U  H  oR                   R                  (       + v   M!     g 7fr   )mgr_locsis_slice_like).0rI   s     r   	<genexpr>5test_unstack_non_slice_like_blocks.<locals>.<genexpr>  s     HAzz////s   ')rG   r7   )keysrJ  )r   r>   r=   r   r   r   r   r   rm   rn   anyrM   rN   r#   r   concatr$   r%   )rO   r#  r)   rQ   nrB   s         r   "test_unstack_non_slice_like_blocksr    s(    
	 	 %(O!<	=B	yy$$Q'77;yy$$Q'77;BB288Lyy$$Q'77;yy$$Q'77;		
 
B HHHHHH
**,Cyy58<8aQ%--/8<58RSTH#( =s   !F$c           	         / SQ/ SQSS[         R                  [         R                  //n[        U[        SS/SS/// S	Q/ S
Q/S9S9nU (       a  0 OSS0nUR                  " S SU S.UD6nU (       aP  [        SSSSS[         R                  /SSSSS[         R                  /S.[        R
                  " / SQ/ SQ/5      S9nO+[        / SQ/ SQS.[        R
                  " / SQ/ SQ/5      S9n[        R                  " XE5        [        U[        R
                  " / SQ/ SQ/5      S9nU (       a  0 OSS0nUR                  " S SU S.UD6n[        R                  " XE5        g )!N)r7   r8   rF   r   )r8   r4   r   r   r4   rG   r}   r|   rI   rJ   r  r  r(  r   rN  Fr   r   r   rF   rP  r   r   rH   )r   r   r7   r7   r8   r8   )r}   r|   r}   r|   r}   r|   r<   )r   rF   rP  r   rF   )rP  r   rF   r   r   )r   r   r7   r7   r8   )r}   r|   r}   r|   r}   )r}   r}   r|   r|   )rI   rJ   rI   rJ   r  )r   rK   r   r   r"   r  r$   r%   )r   rp   r)   kwargsrA   rB   s         r   test_stack_sort_falser    sZ    .Arvvrvv0FGD	#Jc
+L,3O

B  Rfe_FXXCALCFCF3S#rvv63S#rvv6 ((#%CD
 +2KL((/;T)UV
 &+ 
&&(<>R'ST
B  Rfe_FXXCALCFCF&+r   c                    [         R                  " SS/5      n[        SS/SS//SS/US	9nU (       a  0 OS
S0nUR                  " SS/4SU 0UD6n[         R                  " / SQ5      n[	        / SQUS9n[
        R                  " XF5        g )N)weightkg)heightmr   rP  rF   r   r   r   r9   rN  Fr   r7   r   ))r   r  r  )r   r  r  )r   r  r  )r   r  r  )r   rP  rF   r   r<   )r   rh   r   r"   r
   r$   r?   )r   r   r)   r  rA   r   rB   s          r   !test_stack_sort_false_multi_levelr    s     
 
 "2O!D
EC	S#Jc
+E5>3	OBRfe_FXXq!fB<B6BF++	
N *.AH6,r   c                   	   \ rS rSrS r\R                  R                  S/ SQ/ SQ// SQS/ SQ4/ S	Q/ S
Q// SQS/ SQ4/ S	Q/ SQ// SQS/ SQ4/5      S 5       rS r	\R                  R                  S5      S 5       r\R                  R                  S\" S5      / SQ\" SS/SS//\R                  " \R                   " S5      R#                  S5      S5      \R                  " / SQS5      /S9/\R$                  " S5      / SQ\" SS/SS/SS//\R                  " \R                   " S5      R#                  S5      S5      \R"                  " / S Q/ S!Q5      \R                  " / SQS5      /S9//5      S" 5       r\R                  R                  S5      S# 5       r\R                  R                  S5      S$ 5       rS% r\R                  R                  S5      S& 5       r\R                  R                  S'S(S)/5      S* 5       rS+ r\R                  R                  S5      S, 5       r\R                  R                  S5      S- 5       r\R                  R                  S5      S. 5       r\R                  R                  S5      S/ 5       rS0 rS1 r\R                  R                  S5      S2 5       r \R                  R                  S5      S3 5       r!S4 r"S5 r#\R                  R                  S5      S6 5       r$\R                  RJ                  S7 5       r&\R                  R                  S5      \R                  R                  S8\'RP                  RS                  S9 S: 5       5      5      \R                  R                  S;\*" S5      5      \R                  R                  S<S=S>/5      S? 5       5       5       5       r+\R                  R                  S5      S@ 5       r,\R                  R                  S5      SA 5       r-\R                  R                  S5      SB 5       r.SC r/SD r0SE r1SF r2\R                  R                  S5      SG 5       r3\R                  R                  S5      SH 5       r4\R                  R                  S5      SI 5       r5SJ r6\R                  R                  S5      SK 5       r7\R                  R                  S5      SL 5       r8SM r9SNr:g)OTestStackUnstackMultiLeveli-  c                     UnUR                  5       nUR                  5         UR                  [        5      R                  5         UR                  [        R                  5      R                  5         g r   )r#   rm   r  r   r   )r'   /multiindex_year_month_day_dataframe_random_dataymdr,   s       r   test_unstack'TestStackUnstackMultiLevel.test_unstack.  sO    =KKM	 	

3! 	

288$$&r   z5result_rows,result_columns,index_product,expected_row)r7   r7   NN      >@N)r8   r8   NNr  N)ix1ix2col1col2col3col4r8   )NNr  N)r7   r7   NNr  )r8   r8   NNr  )r  r  r  r  r  )NNr  )r8   NNNr  Nc           	          [        XS9R                  SS/5      nUR                  SS R                  S5      n[        U/[        R
                  " USS  U//S S/S9[        S/SS9S9n[        R                  " XV5        g )	Nr   r  r  r7   r8   r   r   r   )	r   rj   r<  r#   r   r>   r   r$   r%   )r'   result_rowsresult_columnsindex_productexpected_rowrA   rB   s          r   test_unstack_partial/TestStackUnstackMultiLevel.test_unstack_partial;  s    < ;?IIEN
 Qq!))%0N++#m_5dE] %(
 	f/r   c                    [         R                  " / SQ5      n[        [        R                  R                  S5      R                  S5      US9nUR                  SS/5      nUR                  SSS9n[        R                  " X45        g )N))r   r   r   )r   r   r   )r7   r>  r7   )r7   quxr7   r8   rG   r<   r7   rK  rJ  how)r   rh   r
   r   r   r   r   r#   r  r$   r%   )r'   r:   rr   r,   rB   s        r   &test_unstack_multiple_no_empty_columnsATestStackUnstackMultiLevel.test_unstack_multiple_no_empty_columnsf  sr    &&H
 299((+;;A>eLIIq!f%	###6
i2r   r2   c                    UnUR                  5       nUR                  US9nU(       a  UR                  SS9n[        R                  " XS5        UR                  SS9nUR                  S5      nUR                  US9nU(       a  UR                  SS9n[        R                  " UR                  SS9U5        US S S2   nUR                  S5      nUR                  US9R                  SS5      nU(       a  UR                  SS9n[        R                  " UR                  SS9U5        UR                  SS5      nUR                  S5      R                  SSSS	9nUR                  SUS9R                  SS5      nU(       a  UR                  SS9n[        R                  " UR                  SS9U5        UR                  5       nUR                  US9nU(       a  UR                  SS9n[        R                  " XS5        UR                  S5      R                  S5      nUR                  SUS9nUR                  5       n[        R                  " Xx5        UR                  SUS9nUR                  S5      n[        R                  " Xx5        UR                  SUS9nUR                  US9R                  S5      R                  S5      n[        R                  " Xx5        UR                  S5      R                  S S 2S S S
24   nUR                  US9R                  US9n	UR                  US9n
U(       a  U	R                  SS9n	U
R                  SS9n
[        R                  " XR                  U	R                  5      5        UR                  S5      R                  SUS9nUR                  S5      R                  SUS9n[        R                  " Xx5        g )Nr   rK  r  r8   rW  r   rZ   r7   rI  r4   r   )r#   r"   r  r$   r%   rA  r@  ro   r?   reindexr:   assert_equal)r'   r  r   r  r,   	restackedunlexsortedrA   rB   r*   ymd_stackeds              r   
test_stack%TestStackUnstackMultiLevel.test_stackq  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-	>;;=
f/>;;q>
f/>99,97??BJJ1M
f/ 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, columns, exp_idxabab)r  r  r  r5   r6   r  r  r4   )r   r7   r   rG   r(  )r5   r8   r6   r7   r5   r7   )r6   r8   r7   )r7   r   r7   )r4   rv   r4   c                    [        [        R                  " S5      R                  SS5      UUS9nU(       a4  Sn[        R
                  " [        US9   UR                  US9  S S S 5        g UR                  US9n[        [        R                  " S5      US9n[        R                  " Xx5        UR                  R                  S	L d   eUR                  UR                  p[        R                  " X5        g ! , (       d  f       g = f)
NrT  rG   r4   r9   z8Columns with duplicate values are not supported in stackr   r   r<   F)r   r   r   r   r   r   r  r"   r
   r$   r?   r:   	is_uniqueassert_index_equal)r'   r   r;   exp_idxr   r)   r   rA   rB   liris              r   test_stack_duplicate_index5TestStackUnstackMultiLevel.test_stack_duplicate_index  s    6 IIbM!!!Q'

 LCz5l3 65 XX<X8Fbiim7;H""64<<))U222\\8>>!!") 65s   C77
Dc                    [         R                  " S/S-  S/S-  -   S/S-  -   S/S-  -   S/S-  S	/S-  -   S/S
-  -   S	/S-  -   SS/S-  / SQ-   // SQS9n[        [        R                  " SSS9[        R                  " SSS9S.US9nUR                  S5      nUR                  US9nU(       a  UR                  SS9n[        R                  " XS5        g )NFrirG   Satr8   SunThur4   DinnerLunchrU   NoYes)r  r  r  )daytimesmokerr   rS  r   rV   )r  rL   r<   r   rK  r  )
r   r  r   r   r   r#   r"   r  r$   r%   )r'   r   r#  r)   rA   reconss         r   test_unstack_odd_failure3TestStackUnstackMultiLevel.test_unstack_odd_failure  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
f)r   c                 >   UnUR                   nSUS'   UR                  SSS9nUR                  US9nUS   R                  US9R                  5       n[        R                  " US   USS9  UR
                  b   eUS   R                  [        R                  :X  d   eg )	Nr   )r   fourr7   )r   rJ  r   Fr  r   )	r&   rA  r"   r$   r?   rf   rW   r   r   )r'    multiindex_dataframe_random_datar   framer)   r*   rA   s          r   test_stack_mixed_dtype1TestStackUnstackMultiLevel.test_stack_mixed_dtype  s     1WW!=]]]+(((5El;FFH
wu~v5I{{"""u~##rzz111r   c           	         [        / SQ/ SQ/ SQ/ SQ[        R                  " S5      S.5      nSn[        R                  " [
        US9   UR                  / S	Q5      R                  [        5      nS S S 5        WR                  5       nUR                  US
9n[        R                  " XdR                  UR                  5      R                  [        5      5        g ! , (       d  f       Np= f)N)naiver  r  activer  r  )r5   r6   r6   r6   r5   r5   )r7   r8   r4   rG   r7   r4   )hir  byer  r  peaceg      @)r   r   barcoder  extraz7DataFrameGroupBy.apply operated on the grouping columnsr   )r   r   r  r  r   )r   r   r   r$   r  DeprecationWarninggroupbyr  rL   r#   r"   r?   r  r:   rm   ri   )r'   r   r)   r   rA   r,   r  s          r   test_unstack_bug+TestStackUnstackMultiLevel.test_unstack_bug  s    R5-?3
 H''(:#FZZ @AGGLF G NN$	OOO>	
y..*I*P*PQV*WX GFs   	'C
C(c                    UnUR                  5       nUR                  R                  S:X  d   eUR                  R                  SS/:X  d   eUR                  US9nUR                  R                  UR                  R                  :X  d   eg )Nr  r   r  r   )r#   r:   rf   r;   rl   r"   )r'   r  r   r  r,   r  s         r   !test_stack_unstack_preserve_names<TestStackUnstackMultiLevel.test_stack_unstack_preserve_names+  s}     1MMO	##w...  &&5(*;;;;OOO>	$$(9(9999r   methodr"   r#   c                    UnUR                   S   nUS:X  a  SU0O0 n[        R                  " [        SS9   [	        XQ5      " S0 UD6  S S S 5        US:X  aG  UR
                  S S 2S4   n[        R                  " [        SS9   [	        Xq5      " S0 UD6  S S S 5        g g ! , (       d  f       N\= f! , (       d  f       g = f)	Nr   r"   r   zdoes not match index namer   r#   r   )mistake)ro   r   r   KeyErrorgetattrr<  )r'   r  r  r   r  r)   r  rr   s           r   #test_stack_unstack_wrong_level_name>TestStackUnstackMultiLevel.test_stack_unstack_wrong_level_name:  s    
 1 YYu39W3D.,/"]]8+FGB4V4 H Y1Ax/JK"77 LK  HG LKs   BB0
B-0
B>c                 t    UnUR                  S5      nUR                  SS9n[        R                  " X45        g )Nr  r7   rW  r   )r'   r  r  rA   rB   s        r   test_unstack_level_name2TestStackUnstackMultiLevel.test_unstack_level_nameN  s3    0x(==q=)
f/r   c                    UnUR                  S5      nUR                  SUS9nUR                  5       R                  SUS9n[        R                  " XV5        UR                  SUS9nUR                  US9n[        R                  " XV5        g )Nr  r   r   r   )r#   r"   r$   r%   r?   )r'   r  r   r  r,   rA   rB   s          r   test_stack_level_name0TestStackUnstackMultiLevel.test_stack_level_nameU  s     1MM(+	\B==?(((F
f/U>;;L;9
v0r   c                 ,   UnUR                  SS/5      nUR                  S5      R                  S5      n[        R                  " XE5        UR                  R                  UR                  R                  :X  d   eUS   nUR                  SS/5      n[        R                  " XuS   5        UR                  SS/US9nU(       a  UR                  SS9nUR                  SS5      R                  SS	5      nUR                  SS
9n[        R                  " X5        UR                  R                  UR                  R                  :X  d   eUR                  SS	/5      nUR                  S5      R                  S5      R                  SSS9n[        R                  " XE5        UR                  S	S/5      nUR                  S	5      R                  S5      R                  SSS9n[        R                  " XER                  S S 2UR                  4   5        g )Nyearmonthr|   r   rK  r  r   r7   r8   rW  r  )r#   r$   r%   r;   rl   r"   r  r@  rA  r:   ro   )	r'   r  r   r  r,   rB   rr   s_unstackedr  s	            r   test_stack_unstack_multiple6TestStackUnstackMultiLevel.test_stack_unstack_multipled  s    >KK 12	;;v&..w7
i2  &&(*:*:*@*@@@@ Hii 12
kC=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                     UnUR                  SS/5      n[        R                  " [        SS9   UR	                  SS/US9  S S S 5        g ! , (       d  f       g = f)Nr  r  zlevel should containr   r   r   )r#   r   r   r  r"   r'   r  r   r  r,   s        r   test_stack_names_and_numbers7TestStackUnstackMultiLevel.test_stack_names_and_numbers  sN     >KK 12	 ]]:-CDOOQL|OD EDDs   A
Ac                 B   UnUR                  SS/5      n[        R                  " [        SS9   UR	                  SS/US9  S S S 5        [        R                  " [        SS9   UR	                  S	S
/US9  S S S 5        g ! , (       d  f       NC= f! , (       d  f       g = f)Nr  r  zToo many levelsr   r8   r4   r   znot a valid level numberr  r  )r#   r   r   
IndexErrorr"   r  s        r   !test_stack_multiple_out_of_bounds<TestStackUnstackMultiLevel.test_stack_multiple_out_of_bounds  s     >KK 12	]]:->?OOQFO> @]]:-GHOORH<O@ IH @?HHs   A?#B?
B
Bc           
         [         R                  " / SQSSS9n[        SS/S-  SS	9n/ S
Qn[        R                  " X/5      n[        X4S9nUR                  5       nUR                  SS9nUR                  SS9n[         R                  " / SQSSS9n	[        / SQ/ SQS.U	SS/S9n
SU
R                  l	        [        R                  " Xj5        [        R                  " Xz5        [        R                  " XR                  5        [         R                  " / SQSSS9n[         R                  " / SQSSS9n[        R                  " X/5      n[        X4S9nUR                  5       nUR                  SS9nUR                  SS9n[         R                  " / SQSSS9n	[         R                  " / SQSSS9n[        [        R                  [        R                  [        R                  [        R                  SS/[        R                  [        R                  SS[        R                  [        R                  /SS[        R                  [        R                  [        R                  [        R                  //U	US9n
[        R                  " Xj5        [        R                  " Xz5        [        R                  " XR                  5        g )N)2013-01r  2013-02r   2013-03r  Mperiodr  rf   r|   r}   r4   strr   r7   r8   r4   rG   rU   rv   r<   r7   rW  r   )r  r   r  )r7   r4   rU   )r8   rG   rv   r!  r9   period1)2013-122013-112013-102013-092013-082013-07period2)r  r  r  r
  r	  r  r8   rG   rv   rU   )r   PeriodIndexr   r   r  r
   r#   r   r;   rf   r$   r%   r&   r   rK   )r'   idx1idx2valuer   rr   result1result2result3e_idxrB   e_colss               r   test_unstack_period_series5TestStackUnstackMultiLevel.test_unstack_period_series  s:   ~~N

 c3Z!^%0"$$d\25$))+))!)$))!)$-Ch
 ),EC:
 !&
g0
g0
gzz2~~N
 ~~N

 $$d\25$))+))!)$))!)$-Ci
 N

 A6Arvvrvv6Arvvrvvrvvrvv6
 
 	g0
g0
gzz2r   c                 4   [         R                  " / SQSSS9n[         R                  " / SQSSS9n/ SQ/ SQS	.n[        R                  " X/5      n[	        X4S
9nUR                  5       nUR                  SS9nUR                  SS9n[         R                  " SS/SSS9n	[         R                  " / SQSSS9n
[        R                  " SR                  5       U
/5      n[	        / SQ/ SQ/XS9n[        R                  " Xl5        [        R                  " X|5        [         R                  " / SQSSS9n	[         R                  " / SQSSS9n
[        R                  " SR                  5       U	/5      n[	        / SQ/ SQ/ SQ/XS9n[        R                  " X5        g )N)2014-012014-02r  r  r  r  r  r  r  )r  r  r  r
  r
  r  r  r  )rv   rU   rG   r4   r8   r7   r!  r<   r7   rW  r   r  r  )r
  r  r  r
  r  r  zA A A B B B)rU   r7   rv   r8   rv   r7   )rG   r8   r4   r4   rU   rG   r9   )r  r  r  r  )r
  r  r  zA A B B)rU   rG   r8   r4   )r7   r8   rv   rU   )rv   r4   r7   rG   )	r   r  r   r  r   r#   r  r$   r%   )r'   r  r  r  r   r)   r  r  r  e_1e_2r  rB   s                r   test_unstack_period_frame4TestStackUnstackMultiLevel.test_unstack_period_frame  sw   ~~N

 ~~N

 )/AB$$d\2u(**,**1*%**1*%nni3#INnnN

 '')<)<)>(DE!34C
 	g0
g0nn8s
 nn-Ci
 ''):C(@A<6c
 	g0r   c                 L   S/S-  S/S-  -   nS/S-  S/S-  -   n[         R                  " / SQS-  5      n[        R                  R	                  S5      R                  SSS	5      n[        X#XES
.5      nUR                  SS/5      nSUR                  l	        UR                  S5      n[        R                  " S5      n	[        R                  " [        U	S9   UR!                  S5      R#                  5         S S S 5        UR!                  S5      R#                  SS9n
U
R%                  SUS9nUR&                  S S 2S/4   R!                  S5      R#                  5       R%                  SUS9nSUR                  l	        [(        R*                  " X5        g ! , (       d  f       N= f)Nr7   r4   r8   r5   r6   )z
2013-01-03z
2013-01-04z
2013-01-05r   r  rv   )IDNAMEDATEVAR1r$  r"  Paramsz&agg function failed [how->mean,dtype->r   zW-THUT)numeric_onlyr   r%  )r   to_datetimer   r   r   integersr   rj   r;   rf   r#   reescaper   r   r   resamplemeanr"   ro   r$   r%   )r'   r   id_colrf   datevar1r)   multiunstr   downr  r  s                r   test_stack_multiple_bug2TestStackUnstackMultiLevel.test_stack_multiple_bug  sa   
 #'qcAg&	seai(~~H1LMyy$$Q'00C;fDOPfd^,%}}T"ii@A]]9C0MM'"'') 1}}W%***=ZZ<Z8HHQ[!XgTVU4lU3	 	 #


b% 10s    F
F#c                 F   [        SS/SS/SS/S.5      nUR                  SS/5      nU(       d  S	O[        R                  nUR	                  5       R                  X1S
9n[        U5      [        UR                  5       5      :  d   eU(       aA  [        R                  " [        SS9   UR	                  5       R                  SUS
9  S S S 5        g UR	                  5       R                  SUS
9n[        R                  " XDR                  5       5        g ! , (       d  f       g = f)Na1a2b1b2r7   rF  r|   r}   Fr  re  r   T)r   rj   r   r  r#   r"   rL   r  r   r   r  r$   r%   )r'   r   r)   r  r*   s        r   test_stack_dropna,TestStackUnstackMultiLevel.test_stack_dropna7  s    
 dD\tAq6JK\\3*%***,$$F$N7|c'.."23333z1MN

""$\"J ON jjl((<(PG!!'>>+;<	 ONs   'D
D c                     [        / SQ/ SQ/ SQ// SQ/ SQ/S9n/ SQUR                  l        SS	/UR                  l        UR	                  S
S/5        g )N)r   r   r   r   r7   r7   r7   r7   )r   r   r7   r7   r   r   r7   r7   r   r7   r   r7   r   r7   r   r7   r  r  r9   r   r   r   r6   r   )r   r:   rl   r;   r#   )r'   r   r)   s      r   "test_unstack_multiple_hierarchical=TestStackUnstackMultiLevel.test_unstack_multiple_hierarchicalJ  sS    (((
 "<0
 ):

 	

C:r   c                 ~   Sn[        [        R                  R                  S5      R	                  SUS9[        R                  R                  S5      R	                  SUS9[        R                  R                  S5      R	                  SS	US9[        R                  R                  S
5      R	                  SSUS9[        R                  R                  S5      R	                  SUS9[        R                  R                  S	5      R                  U5      S.5      nUR                  / SQ5      nUR                  S5        g )N  r8   r  )sizer4   i,  rG   irw   rU   i   rv   i  )r|   r}   r   r   r   r   )r|   r}   r   r   r   r   )r   r   r   r   r)  r   rj   r#   )r'   NUM_ROWSr)   idfs       r   test_unstack_sparse_keyspace7TestStackUnstackMultiLevel.test_unstack_sparse_keyspaceZ  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                 F   SS// SQ/n/ SQ/ SQ/n[        X#5      n[        [        R                  R	                  S5      R                  S5      US9nUR                  5       n[        UR                  5      S	:X  d   eUR                  US
9n[        R                  " Xu5        g )Nr   r7   rG  r  rH  r8   )rG   r8   r<   rG   r   )r   r   r   r   r   r   r#   rL   r;   r"   r$   r%   )r'   r   r@   r"  r:   r)   rA   r  s           r   test_unstack_unobserved_keys7TestStackUnstackMultiLevel.test_unstack_unobserved_keyso  s    
 a&,'|,6)ryy,,Q/??GuU6>>"a'''<8
f)r   c                 8    " S S[         R                  5      nUR                  5        nUR                  [         SU5        [	        [
        R                  " S5      [
        R                  " S5      [
        R                  " S5      /S9nSn[        R                  " [        US9   [        R                  " [        S	S9   UR                  5         S S S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N(= f! , (       d  f       g = f)
Nc                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )aTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32.<locals>.MockUnstackeri  c                 :   > [         TU ]  " U0 UD6  [        S5      e)NDon't compute final result.)super__init__	Exception)r'   argsr  	__class__s      r   rR  jTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32.<locals>.MockUnstacker.__init__  s!     $1&1 =>>r   r  )returnN)rD  rE  rF  rG  rR  rL  __classcell__)rU  s   @r   MockUnstackerrN    s    ? ?r   rY  
_Unstacker)   r8   r[  r<   z$The following operation may generater   rP  )reshape_librZ  contextsetattrr   r   rY  r   r$   r  r   r   r   rS  r#   )r'   monkeypatchrY  r  r)   r   s         r   /test_unstack_number_of_levels_larger_than_int32JTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32  s    
	?K22 	?   "aIIk<?$yy'5)9:B 9C++,>cJ]]94QRJJL S K #" SR KJ #"s<   A;D%C:?C)C:D)
C73C::
D	D
Dr@   c              #   z   #    U  H1  n[         R                  " [         R                  " / S QU5      SS9v   M3     g7f)rd   r8   r   N)r   r   rK  )r~  widths     r   r  $TestStackUnstackMultiLevel.<genexpr>  s1      &
 i44YFqQs   9;r   	stack_levrN  TFc                 F   [        U/ SQ/ SQ/S9n[        U[        S5      /S9nU(       a  0 OSU0nUR                  " U4SU0UD6nUR                   HK  n	UR
                   H8  n
UR                  X4   nXU   4nU
SU-
     nUR                  X4   nX:X  a  M8   e   MM     g )	Nr  r  r(  rG   )r;   rp   rN  r   r7   )r   r   r=   r"   r:   r;   ro   )r'   r@   re  rN  r   r;   r)   r  
df_stackedrowr  rB   
result_row
result_colrA   s                  r   %test_stack_order_with_unsorted_levels@TestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels  s    " F<2NOweAhZ8#&$XXiMlMfM
88Czz66#(+ i.0
 Y/
#
(>?))) " r   c           
      z  ^^ [        / SQ/ SQ/[        R                  " [        S5      S5      [        R                  " [        S5      S5      /S9n[        U[        S5      [        R                  " S[        U5      -  5      R                  SS5      S9m[        UU4S jTR                   5       5      (       d   eg )	N)r|   r   r}   )r}   r|   r   r4   r(  rU   rZ   )r;   r:   rp   c              3      >#    U  HP  nTR                     H<  nTR                  X4   TR                  S TS9R                  XS    4US   4   :H  v   M>     MR     g7f)r   r   r7   N)r;   ro   r"   )r~  rh  r  r)   r   s      r   r  ]TestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels_multi_row.<locals>.<genexpr>  si      
  zz FF38xxx5993A-Q:OPQ "Qs   AA)r   r   r   r=   tiler   r   rL   r   rK  r:   )r'   r   r#  r)   s    ` @r   /test_stack_order_with_unsorted_levels_multi_rowJTestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels_multi_row  s     #_599U1Xq)27758Q+?@
 eAhRYYq3r7{-C-K-KAr-R
  
 xx
 
 
 	
 
r   c                    SnSn[        U/ SQ/ SQ/S9n[        U[        S5      // SQS9nU(       a  0 OS	S
0nUR                  " U4SU0UD6n[        / SQSS/// SQ/ SQ/S9n[        / SQ/ SQS.US9n	[        R
                  " Xy5        g )N)r   r7   )r7   r   r7   r  r  r(  rG   )r7   r   r8   r4   )r;   rp   r:   rN  Tr   rG  r   )r7   r7   r   r   r8   r8   r4   r4   )r7   r   r7   r   r7   r   r7   r   r>  )r8   r4   r8   r4   r8   r4   r8   r4   rt  r<   )r   r   r=   r"   r$   r%   )
r'   r   r@   re  r;   r)   r  rA   r   rB   s
             r   1test_stack_order_with_unsorted_levels_multi_row_2LTestStackUnstackMultiLevel.test_stack_order_with_unsorted_levels_multi_row_2  s    
 "	F<2NOweAhZ|L#&$)I,I&I# 1a&)+-EF
 ++ !
 	f/r   c           	         [         R                  " S5      n[         R                  " U Vs/ s H  nSU 3PM
     snU Vs/ s H  nSU 3PM
     sn/5      n[        UR                  SS/S9nSUR
                  l        SU0n[        R                  " USS9nS	S/UR
                  l	        UR                  [        UR
                  5      SS9nUR                  SS	/US
9R                  SS	/5      n[        SS/SS/SS/SS/SS/// SQ[        R                  " SS/SS	/S9S9n	[         R"                  " X5        g s  snf s  snf )NrU   r6   r5   r   r  rI   r7   rI  r  r   a0b0r7  r9  r8  r:  a3b3a4b4r  )r5   rI   )r6   rI   r   r9   )r   r   vstackr   r&   r;   rf   r   r  rl   r  r  r"   r#   r   rh   r$   r%   )
r'   r   r   rI   rp   r)   second_level_dictmulti_level_dfrA   rB   s
             r   'test_stack_unstack_unordered_multiindexBTestStackUnstackMultiLevel.test_stack_unstack_unordered_multiindex  sS   
 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
 	f/) *)s   D: D?
c                 "   UnSUS'   SUS'   UR                  S5      nUS   R                  [        R                  :X  d   eU(       d$  US   R                  [        R                  :X  d    e US   R                  [        R                  :X  d   eg )	Nr   r   r8   r   r  r0  )r   r7   )r   r7   )r#   rW   r   r   object_)r'   r  r5  r  r,   s        r   test_unstack_preserve_types6TestStackUnstackMultiLevel.test_unstack_preserve_types  s     >CCKK(	 &&"**444 & f##rzz1	
 &&"**444r   c                    [         R                  " [         R                  " S5      S5      n[         R                  " S5      n[        U/S-  SS//-   U/S-  [         R                  " S5      R	                  S5      /-   S9n[        [         R                  " S5      US9nUR                  5       nUR                  S	:X  d   eUR                  US
9n[        R                  " XWR                  UR                  5      5        [        SS//U/S-  -   [         R                  " S5      R	                  S5      /U/S-  -   S9n[        [         R                  " S5      US9nUR                  S5      nUR                  S	:X  d   e[        U/S-  SS//-   U/S-  -   U/S-  [         R                  " S5      R	                  S5      /-   U/S-  -   S9n[        [         R                  " S5      US9nUR                  S5      nUR                  S	:X  d   eg )N  r8   rx   r   r7   r(  rB  r<   )r  r8   r   rG   )r   rp  r   r   r   r
   r#   r!   r"   r$   r?   r  r:   )r'   r   r"  r   r:   rr   rA   r*   s           r   !test_unstack_group_index_overflow<TestStackUnstackMultiLevel.test_unstack_group_index_overflow	  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           	          [        / SQ/ SQS/S-  S.5      R                  SS/5      nSUS	'   U(       d%  [        UR                  R                  5      S
:X  d   eUR                  S5      nUS   R                  S5      US'   [        / SQ[        R                  SSS//[        SS/SS9[        R                  " / SQS S/S9S9nU(       a.  US   R                  S5      US'   US   R                  S5      US'   [        R                  " X45        g )N)r|   r|   r}   )cacbr  r9  r4   )r5   r6   r  r5   r6   r7   is_r8   r  r  r   )      $@r  r   r   r  rw  r   r|   r}   r   ))r  r  r  r  r  r  r  r   r9   r  rn   r  )r   rj   rL   rM   rN   r#   r%  r   rK   r   r   rh   rm   r$   r%   )r'   rO   r)   rA   rB   s        r   +test_unstack_with_missing_int_cast_to_floatFTestStackUnstackMultiLevel.test_unstack_with_missing_int_cast_to_float5	  s   $'TAX
 )S#J
 	 5	"rww~~&!+++C &} 5 < <Q ?}#bffdC%=>c
-**HSk
 $,[$9$@$@$IH[!&.}&=&D&DW&MH]#
f/r   c                    [        / SQ/ SQ/ SQ/ SQS.5      nUR                  / SQ5      n/ SQnUR                  R                  USS9Ul        UR                  R                  US	S9Ul        UR	                  S
5      S   R                  5       R                  n[        / SQ/ SQ// SQ/ SQ/SS	/S9n[        R                  " X45        g )Nr1  )r4   rG   r7   r8   rw  )L1L2L3rI   )r  r  r  )n1n2n3Nr  )r@   r   r  r  )rI   r7   rG  )r8   r4   r   r7   r!  )	r   rj   r:   
set_levelsr#   rA  r   r$   r  )r'   r   
new_levelsrA   rB   s        r   test_unstack_with_level_has_nan:TestStackUnstackMultiLevel.test_unstack_with_level_has_nanU	  s    """!	
 mm./-
II((
$(G	II((
$(G	T"8,779??,.FG.,
 	f/r   c                    [        [        R                  " SS/5      [        R                  " / SQ5      S9nUR                  SUS9nU(       a+  [        S/SS	/// S
Q/ SQ/S9n[        S/SS/// S
Q/ SQ/S9nO[        / SQ5      n[        / SQ5      n[        S[        R                  [        R                  /[        R                  SS/[        R                  SS//UUS9n[        R                  " X65        g )Nr7   rU   ))r   NN)r   r8   r   )r   r8   r7   )r   r4   r   )r   r4   r7   r   r8   r   r   rw  r   ra  )rZ   r   r7   r(  r4   )r   N)r   r   rt  )r  )r   r8   )r   r4   r9   )
r   r   rY  r   rh   r"   r   rK   r$   r%   )r'   r   r)   rA   r:   r;   rB   s          r   $test_stack_nan_in_multiindex_columns?TestStackUnstackMultiLevel.test_stack_nan_in_multiindex_columnsm	  s    
 HHaV**
 !,7sS#J&7	:?VWE !q!fi=TUG56E78G266266"RVVS#$6c8JK

 	f/r   c                 @   [         R                  " S/S-  S/S-  -   [        R                  " [	        S5      5      [        R                  " [	        S5      5      /5      n[        [        R                  " S5      R                  SS5      US9nUR                  S	S/US
9nU(       a  [        S[        R                  /S	[        R                  /[        R                  S/[        R                  S/S[        R                  /S[        R                  /[        R                  S/[        R                  S//SS/[         R                  " S/S-  S	/S-  -   [        R                  " [	        S5      5      [        R                  " [	        S5      5      /5      S9nO[        S[        R                  /[        R                  S/S	[        R                  /[        R                  S/S[        R                  /[        R                  S/S[        R                  /[        R                  S//SS/[         R                  " S/S-  S	/S-  -   [        R                  " [	        S5      5      [        R                  " [	        S5      5      /5      S9n[        R                  " XE5        g )Nr|   r8   r}   r  ccddrx   rG   r   r7   r   r   r4   rU   rv   rw   ababababccddccddr   aabbaabbcdcdcdcd)r   r  r   r   r   r   r   r   r   r"   rK   r$   r%   )r'   r   r+  r)   rA   rB   s         r   "test_multi_level_stack_categorical=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( 	f/r   c           	         [        [        R                  " S5      R                  SS5      [        R
                  " S[        R                  4S/SS/S9[        SS	/S
S9[        R                  S9nUR                  US9nU(       a(  [	        SS	/[        R                  S/// SQ/ SQ/S
S/S9nO;[        R
                  " S[        R                  4SS	[        R                  4S/S
S/S9n[        S[        R                  /[        R                  S	/S[        R                  /[        R                  S//[        SS/SS9US9n[        R                  " X55        g )NrG   r8   r|   r~   r  r  r   r   r7   Numr   rQ  r   r6   r  r  r!  rO  )r7   r6   rw  rP  rF   r}   r   )r   r   r   r   r   rh   rK   r   r   r"   r$   r%   )r'   r   df_nanrA   r:   rB   s         r   test_stack_nan_level/TestStackUnstackMultiLevel.test_stack_nan_level	  s3   
 IIaL  A&**rvv
+GW3E AU+**
 <8A.#\2g&E **RVVhBFFX>ugFVE 266]RVVQK#rvvF3*73

 	f/r   c                 x   [         R                  " S/SS//5      n[        S[        R                  " SS/5      0US9nUR                  5       n[        [        R                  " S/SS/S9[        R                  " S/SS/S9S	.S/S9n[         R                  " S
S/5      Ul        [        R                  " X45        g )Nr|   r   r7   r   r5   r6   r<   r   rt  )r   r   )r   r7   )
r   r>   r   r   r   r#   rh   r;   r$   r%   r   s        r    test_unstack_categorical_columns;TestStackUnstackMultiLevel.test_unstack_categorical_columns	  s    %%uq!fo6r~~sCj9:#F>>3%S#J?>>3%S#J? %
 &11:z2JK
f/r   c                    SS/nSS/n/ SQn[         R                  " X#U// SQS9n[        [        [	        U5      5      5      n[        XeS/S	9nUR                  S
S/5      nUR                  R                  S5      Ul        SUR                  S S 2S4'   UR                  S
S/US9R                  5       nUR                  SS9R                  S
S/US9R                  5       n	[        R                  " X5        g )NITAFRAA1A2)CRTDBTNET)PAEVARTYPr   VALUE)rp   r:   r;   r  r  r   i'  )A0r  r   r7   rI  )r   r>   r   r=   rL   r   r#   r;   rf  ro   r"   rA  r$   r?   )
r'   r   r  r  r  r   VDFrA   rB   s
             r   test_stack_unsorted.TestStackUnstackMultiLevel.test_stack_unsorted	  s    
 enTl#$$c_<QRs2w A';ZZ'ZZ))!,
#'q- 5%.|DOOQMMqM!UE5>U=Z\ 	
 	v0r   c                    [         R                  " SS/SS//SS/S9n[        / SQS	S
9n[        R                  " / SQ/ SQ/ SQ/5      n[        XBU[        R                  " 5       S9nUR                  SUS9nUR                  [        R                  5      R                  SUS9R                  [        R                  " 5       5      n[        R                  " Xg5        XUR                  S      R                  [        R                  " 5       5      XUR                  S   '   UR                  SUS9n[        [        R                  " / SQ[        R                  " 5       S9[        R                  " / SQ[        R                  " 5       S9S.[         R                  " X2R                  S   /5      S9nSUR                  l        [        R                  " Xg5        g )N5451154515r  t_meanstationelementr   r   r  r   )r     r9     )r9  r  r      )i1     r  r  rQ  r   r   )r   r  r  g      "@g     s@g     [@rV   )r  r  r  r  r  r  )r  r  r<   )r   r>   r   r   r  r   r   
Int64Dtyper"   rm   rn   r$   r%   r;   Float64Dtyper@   rf   )r'   r   r;   r:   arrr)   rA   rB   s           r   test_stack_nullable_dtype4TestStackUnstackMultiLevel.test_stack_nullable_dtype
  sx   
 ))w#x1)Y9O
 if-hh*,=?STUs5P),? IIbhhU9<U8VBMMO$ 	
 	f/ zz!}-44R__5FG::a=),?XX9AR ((2"--/	 ))5..2C*DE

 !*
f/r   c           	      &   SS/SS/SS//n[         R                  " USS9n[        SSS/0US	9nUR                  S
5      n[        S/S//[         R                  " S/S S
/S9[         R                  " SS/SS/S9S9n[
        R                  " XE5        g )Nr5   r7   r8   redblue)rI   r   rJ   r   r  r<   rI   )r  r5   )r7   r  )r8   r  r   rJ   r   )r   r  r   r#   rh   r$   r%   )r'   arraysr   r)   rA   rB   s         r   test_unstack_mixed_level_names9TestStackUnstackMultiLevel.test_unstack_mixed_level_names5
  s    *q!fufo6$$V=AaV}C0CS1#J**J<c{K((*k)B1c(S

 	f/r   r  );rD  rE  rF  rG  r  r   rH  rJ  r  r  rI  r  r   r   r   rp  r   r   rh   r  r  r  r  r  r  r  r  r  r  r  r  r  r4  r;  r?  rG  rJ  slowr`  r   chainfrom_iterabler=   rk  rq  ru  r  r  r  r  r  r  r  r  r  r  r  r  rL  r  r   r   r  r  -  s   ' [[? 01OP>(	 *+CD6"	 *+FG6"		
.0/.0(	3 [[CJ*J*X [[ V% #J777299Q<#6#6q#91=rwwyRS?TU &&'OP% #JA?		! 3 3A 6:		)Y7	1-	
2*32*& [[C**2 [[C22Y& [[C
:
: [[X';<8 =8&0 [[C
1
1 [[C M MD [[C	E	E [[CAAC3J-1^ [[C&&2 [[C==  * [[C** [[! !* [[C [[%% &
&
 	
 [[[%(3[[VdE]3* 4 4*" [[C

$ [[C00* [[C0065"#(J0@00 [[C008 [[C5050n [[C0080 [[C11, [[C#0#0J0r   r  c           	          [        / SQ/ SQ/ SQ// SQS9nUR                  U S9n[        / SQ[        / SQ/ SQ// S	Q/ S
Q/S9S9n[        R
                  " X#5        g )Nr   )rG   rU   rv   )rw   rx   r   )r  r  r  r   r   )	r7   r8   r4   rG   rU   rv   rw   rx   r   rd   )	r   r   r   r7   r7   r7   r8   r8   r8   )	r   r7   r8   r   r7   r8   r   r7   r8   r(  r<   )r   r"   r
   r   r$   r?   )r   r)   rA   rB   s       r   test_stack_tuple_columnsr  C
  sb    		Iy)3Q
B XX<X0F#=>.0KL
H 6,r   zdtype, na_valuer-  test_multiindexc                    U(       a$  [         R                  " S[        U/U S9/-  5      nO[        U/U S9n[        SS/0US9nUR	                  SS9nU(       a6  [         R                  " [        U/U S9[        U/U S9[        S/5      /5      nO+[         R                  " [        U/U S9[        S/5      /5      n[        SUS9n[        R                  " XW5        g )Nr8   rV   r5   r7   r<   Tr   )r   r  r   r   r"   r
   r$   r?   )rW   na_valuer  r:   r)   rA   r   rB   s           r   test_stack_preserves_nar  S
  s     &&qE8*E,J+K'KLxj.	C!:U	+BXX4X(F#//xj.xj.se
 $//xj.se
 a~.H6,r   )1r   r   r*  numpyr   r   pandas._libsr   pandas.errorsr   pandasr   r   r   r   r	   r
   r   r   pandas._testing_testingr$   pandas.core.reshaper   r\  fixturer   r   rH  rJ  rT  rV  r[  rc  rI  r  rf  rh  rj  ru  ry  r  r  r  r  r  rK   r:  r  r  r   r   <module>r     sY     	    ,     6 e}% &B0 B0J( 9i"89", :",J,0,0	- WXD%#@A1 B Y1 WXD%#@Aay10 2 B Y0"),> WX
, Y
,), WX#, Y#,L WX- Y-$S0 S0l -  	BFF	BFF	BEE	"%%	 *T5M:- ;-r   