
    A>i                       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\R8                  R;                  S/ SQS\R>                  4SSS/4/ SQSS\R>                  4SS/4/ SQSSS\R>                  4S/4/ SQSSSS\R>                  4/4// SQS9S 5       r S r!S r"\R8                  RG                  S5      S  5       r$\R8                  RG                  S5      \R8                  R;                  S!SS\RJ                  /5      S" 5       5       r&\R8                  RG                  S5      \R8                  R;                  S!SS\RJ                  /5      S# 5       5       r'\R8                  RG                  S5      \R8                  R;                  S!SS\RJ                  /5      \R8                  R;                  S$SS /5      S% 5       5       5       r(S& r)S' r*\R8                  RG                  S5      S( 5       r+S) r,\R8                  RG                  S5      S* 5       r-\R8                  RG                  S5      S+ 5       r. " S, S-5      r/\R8                  RG                  S5      S. 5       r0\R8                  R;                  S/S\R>                  4S\R>                  4S\Rb                  4S0\Rb                  4/5      \R8                  R;                  S1SS/5      S2 5       5       r2g)3    )datetimeN)lib)Pandas4Warning)	DataFrameIndex
MultiIndexPeriodSeries	Timedelta
date_range)reshapeTF)paramsc                     U R                   $ N)param)requests    d/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/frame/test_stack_unstack.pyfuture_stackr      s    ==    c                   ,   \ rS rS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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5      \R
                  R#                  S\S]S^/5      S_ 5       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       r9\R
                  R                  S5      Sf 5       r:\R
                  R                  S5      \R
                  R#                  Sg/ ShQ/ SiQ/ SMQ/5      Sj 5       5       r;\R
                  R                  S5      \R
                  R#                  SkS3S2/SlSm/SnSoSo4S3S2/SpSq/SnSrSs4/5      St 5       5       r<\R
                  R#                  SXS/S3/5      Su 5       r=\R
                  R#                  SXS/Sv/5      Sw 5       r>Sxr?g)yTestDataFrameReshape   9ignore:The previous implementation of stack is deprecatedc                 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   c           	      $   [        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_level4   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                 6   [        SS[        R                  /SS[        R                  /S.5      nUS/   nUS   US'   [        UR                  R
                  5      S:X  d   eUR                  5       nUR                  5       n[        R                  " X45        g )Nr7   r8         @   xyrI   rJ   )	r   r   nanlen_mgrblocksr$   r%   r?   )r(   r*   df2resrB   s        r   test_unstack_not_consolidated2TestDataFrameReshape.test_unstack_not_consolidatedN   s}    aBFF^32662BCD#ic7C388??#q(((kkm::<
s-r   c                 N   [        / 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        Sn[        R                  " [        US9   UR                  SS9nS S S 5        [        / 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Xx   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                  " X65        US   n
U
R                  SS/SS9nUS   n[        R                  " X45        g ! , (       d  f       GNr= f)N)r7   r8   rG      dtype)rI   r5   )rI   r6   )rJ   r6   )zr5   
fill_value)r7   rY   rT   )r8   rG   rY   r5   r6   rI   rJ   rX   r:   rV   JUsing a fill_value that cannot be held in the existing dtype is deprecatedmatch      ?)r7   rb   rT   )r8   rG   rb   r5   r5   r6   )jkrd   r   r7   r8   )rI   rJ   rX   wrI   rJ   r   )rg   r6   rd   )r   r   r8   )r:   namer   rg   )r
   r   int16r   from_tuplesr:   r$   r   r%   r&   assert_produces_warningr   float	set_indexr?   r#   reorder_levelsnamesastypeint64loc)r(   r   datarA   rB   msgr*   r-   keyr+   ss              r   test_unstack_fill&TestDataFrameReshape.test_unstack_fillY   s    l"((3++<

 ,:.oRXX
 	f/ Y 	 ''cB\\S\1F C 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/; CBs   H
H$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        Sn[        R                  " [        US9   UR                  SS9nS S S 5        / SQ/ SQ/ SQ/n[        U[        S5      [         S9n[        R
                  " / SQ5      Ul        [        R                  " X45        g ! , (       d  f       Ne= f)Nr7   r8   r4   rG   rT            AB)r;   rV   rW   rY   rZ   )r7   r4   r8   rG   )rY   rT   rY   rz   )r{   rY   r|   rY   xyzr^   )Ar5   )r   r6   )Br5   r   r6   r   r   r_   r`   rb   )rb   rT   rb   rz   )r{   rb   r|   rb   )r   listr   int32r   rj   r:   r$   r;   r%   r&   rp   ri   float64rk   r   rl   )r(   rowsr*   rA   rB   rt   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/ Y 	 ''cBZZ3Z/F C .0@ATeEB%11<
 	f/ CBs   H  
H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   periodsrW   r   r4   r7   r8   r\   r]   r<   rZ   )r   valuesr
   r   rj   r:   r$   r   pdNaTr%   r&   )r(   dvrs   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   )daysrW   r   r4   r7   r8   r\   r]   r<   rZ   )r=   r   r
   r   rj   r:   r$   r   r   r   r%   r&   )r(   itdrs   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-04rW   r   r4   r7   r8   r\   r]   r<   rZ   )	r	   r
   r   rj   r:   r$   r   r%   r&   )r(   r   rs   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Q[        S5      S9[        R                  " / SQ[        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   categoryrU   rW   )r5   Nr5   abc
categories)r6   r   Nr\   r~   r<   z9Cannot setitem on a Categorical with a new category \(d\)r`   drZ   r   acabcc)r
   r   rj   r:   r$   r   r   Categoricalr   r%   r&   pytestraises	TypeError)r(   rs   rA   rB   rt   s        r   #test_unstack_fill_frame_categorical8TestDataFrameReshape.test_unstack_fill_frame_categorical   s   **=++<


 ^^$4eM^^$4eM u+
 	f/ K]]9C0LLCL( 1 -^^DKDKH^^DKDKH u+
 	f/ 10s   =E
E)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   ro   r7   	   r8   r   er<   )r7   r7   r7   r8   r8   r8   )r   r5   r   r6   )r   r   r   r5   r   r6   )r   r   rh   r;   r:   )r   r>   r   r$   rj   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   r|   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_multiindex;  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_compare~  s.    [M2JK0J!!*9r   r   r:   r   r   r   )r   r   r   r   r   r   )	r   r
   rp   r   randomdefault_rngr   	Timestamprm   )r(   r*   r   df1rv   s        r   test_unstack_preserve_dtypes1TestDataFrameReshape.test_unstack_preserve_dtypesl  sQ   +(#)/#:#A#A*#MYY**1-44Q7\\*-./66yAO,33I>,-44V<
 	:
 llGW-.C)llG%678C!23llC:&C%ll./C%llC:&C%llGW-.HAw'r   c           	         [         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   rY   T)inplace)r   rj   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   rj   r   r   r   r   r   r#   r   r;   ro   r%   r&   r   r   
ValueError)	r(   r   r;   r*   animal_hair_stackedexp_hair_stackedrO   rt   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   rf   r7   Fr  r   )r8   r   r7   )r   rj   r   r   r   r   r   r#   r   r;   ro   r%   r&   )	r(   r   r;   r*   exp_animal_stackedr  r  rO   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   rU   )
r   r   from_arraysr$   r   arrayrK   objectr%   r&   )r(   r*   rsxps       r   test_unstack_bool&TestDataFrameReshape.test_unstack_bool2  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@   codesro   r   r<   r7   r8   r   r  r  rU   r  r   r9   )r   r
   r$   r#   r   r   r  rK   r   r   r%   r&   )r(   r   mirv   rA   expected_mirB   s          r   test_unstack_level_binding/TestDataFrameReshape.test_unstack_level_binding@  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)   rs   undorA   midxrB   old_data_s	            r   test_unstack_to_series+TestDataFrameReshape.test_unstack_to_series]  s   ""$$''''||~
d0 1bff~S!RVV4DEF?+
#J0%'9:
 1aArvv6dC
v0 99;qA<<>D 
h-r   c                    / 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"  [        R                  " [        R                  S9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   rq   rG   r<   r   r   )r   r   r   r   )r7   r8   r7   r8   )Nr   r   rF   r   r   r8   r   r   )na_valuer  )r   r   dtypesr
   r   rV   r%   r?   rm   r$   r   r  r   StringDtyperK   )	r(   using_infer_stringr   r*   rA   rB   rO   r  rV   s	            r   test_unstack_dtypes(TestDataFrameReshape.test_unstack_dtypesx  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# " NNBFF+(# 	
 XXi !A%!3((%|4K
 	v0r   zc, drT   f8rU   
   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   rT   r   r   )r   r   r   r   r4   T)deepr   r   r   rq   r   )r   r5   )r4   r8   )
r   r   ilocr   rm   rp   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   rj   r   r   r   r  r$   r'   r#   )r(   r   r   r*   rt   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5      / 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5      [	        S5      /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   rY   r7   r   r4   r<   r8   r   r   r   )r7   r7   r7   r   r   r   r9   rG   r  r   r8   r   r8   axisr   )r   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/))58_*EF01#P
f/%%a(CJJqM9>>@@@@ (E!H%|,'		!$$Q*r~~uai&89ENNEAIuqy1}5A>
 	f/%%a(CJJqM9>>@@@@r   z"level, idces, col_level, idx_levelr   )      rz   r   r8   rT   r|      r5   r8   r7   )r|   rR  r7   rG         rP  rQ  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5      U/5      n[        UR	                  SS5      XLS9n[        R                  " X5        g )N)r5   r8   r   )r7   r4   rT   r{   )r   rY   r7   r7   )r   r8   rY   r8   r|   rG   r8   r<   r      r4   rz   r9   )r   r   r    r   r   r$   zerosrK   r>   r=   r%   r&   )r(   r   idces	col_level	idx_levelr@   r!  r   rs   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)dropra  r   r   r   )r   rm   rr   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   )rl  rm  rn  ro  rp  rq  )rB  rl  rm  rn  ro  rp  rq  rk  r   )r   r   rj   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  rx  (   rk  rl  rm  r   rl  rk  r   )r   r   rj   r$   r;   ro   )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   rY   r   r   )r   r   f)m1P3   )r  A5o   )m2r  r  )r  r  r  rz  r   r   rm  rl  )r   r   rj   r$   r%   r&   rr  s       r   &test_unstack_multi_level_rows_and_cols;TestDataFrameReshape.test_unstack_multi_level_rows_and_cols7  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>.castN      JbCGa[!r   r5   r6   r   )rg   rI   rJ   rX   )za.wzb.xz .yzd.z)r  r  jolier  r  r  rV  c                 H    [        U [        5      (       a  [        U 5      $ U /$ r   r(  tupler   r5   s    r   <lambda>>TestDataFrameReshape.test_unstack_nan_index1.<locals>.<lambda>a      z!U';';DGD!Dr   .)r   r   rK   rm   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   rd   s                 r   test_unstack_nan_index1,TestDataFrameReshape.test_unstack_nan_index1J  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>.castm  r  r   r   r4   rT   r5   r8   r   r   r6   rJ   rg   rX   rG   rI   )C   '   5   H   9   P      rW  rR  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   rH  c           	      Z   > SR                  [        TU R                  S S S2   5      5      $ )Nr  rY   )r  r  r<  r  s    r   r  r    s!    sxxD!&&2,(?@r   r  r  rV  c                 H    [        U [        5      (       a  [        U 5      $ U /$ r   r  r  s    r   r  r    r  r   r  )r   r   rK   applyrm   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   rd   r>  r=  r  s                 @r   test_unstack_nan_index_repeats3TestDataFrameReshape.test_unstack_nan_index_repeatsi  s   	" uqy66(Q,%!) %!) %!)	
 %!) uqy%!)66(Q, %!) 66(Q,	
 %!) 66(Q,$&
R HH5AH>HH@qHI 	5	2e9
 \\$s)$jjsj#yy{!!%%'1s2w;666DX^^%,,446
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aaaabbbbr|   rF  r   rl   r4   r7   r   r   r4   r7   r8   rG   rT   rz   r{   r   r   r5   r6   r   r   )r8   r7   )r   r   r=   rp   r   rK   r<  rm   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[        X5US9n[        R                  " X&5        g )N
aaaaabbbbbr   rT   r   r8   r9  rF  r  r   r   r4   r   r7   rG   rz   r{   r|   r   r5   r6   r   r   )r   r   r   r   r   r   )rY   r   r7   r8   r4   rG   r   r   )r   r   r   tolistr   r    rK   r<  rm   r$   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   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(Urv  Pbg	VZ>)Sn@>]K=?)=()Agrv  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   rY   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   rm   r$   r   r%   r&   rr   )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-01rz   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   rr   rm   r$   r  r   r  rL   iterrows)r(   r*   r>  r  r,  r  ru   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
5      S/5      n[        R                  " US4/5      n[        / SQXxS9n	[
        R                  " WU	5        g ! , (       d  f       Nl= f)Ni  r7   r0  r   r   r   z2The previous implementation of stack is deprecatedr`   r   rG   )r   r9   )r   r   r   rj   r   r%   rk   r#   r>   r=   r&   )
r(   r   tr*   warnrt   rA   eidxecolsrB   s
             r   %test_stack_datetime_column_multiIndex:TestDataFrameReshape.test_stack_datetime_column_multiIndex2  s    T1a |Z-C-Cac]O-TU#tB''8XX<X8F 9 &&a&'9:&&Cz2\E
fh/ 98s   C
Cmultiindex_columnsr  r   r7   r8   r4   )r   r7   r8   rG   rf   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   rY   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   rX   )r   rJ   )r   rI   )r   uUpperLowerr   r4   r   r   dropnar   T)r   
no_defaultr   rj   r   r   r    rL   r   r#   r(  intr
   r%   r?   r&   r;   to_numpyro   )
r(   r  r   r   r  full_multiindex
multiindexr*   rA   rB   s
             r   test_stack_partial_multiIndex2TestDataFrameReshape.test_stack_partial_multiIndex@  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5      / 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   rz   r8   r4   )r   r7   r4   r   Fr  r   r   r7   rT   rG   )r  rI   rJ   rX   r  )r7   r4   r7   r4   r   r   r   r   r9   )r   rj   r   r   r    r   r   r  r#   rK   r=   r   rp   r3  r<  r%   r&   )r(   r   r  r*   r  rA   rB   s          r   test_stack_full_multiIndex/TestDataFrameReshape.test_stack_full_multiIndex  s    
 %00HG$
 ryy|++Aq1?9;UV*CVa[1a&1bff+6a"67#\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yxzr~   r   r  )r9  rR  rS  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,datar~   )r9  rR  rS  rP  r  rT  zyx)r  rT  rS  rP  r9  rR  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5      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(   r  labelsrs   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!8%(F9R!S
 	v0r   c                    [         R                  " / SQ5      n[        X"S.5      nUR                  US9n[        R
                  " [        S5      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   r*   rA   r:   rB   s          r   ,test_stack_preserve_categorical_dtype_valuesATestDataFrameReshape.test_stack_preserve_categorical_dtype_values  sv    
 nn12S+,|4''qC:(>?NNCDE
 	v0r   r:   r  )r   r   r8   r4   c                    [         R                  " SS/SS//5      n[        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 )Nr7   r8   r5   r6   r9   r   )r   r>   r   fillnar#   rj   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     ))Aq6C:*>?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   stringr  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 )NrU   )r   r7   )r   r8   r   )r   r
   r#   rp   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   r1  )r   r7   r5   r6   r   )r   r7   Nr-  rU   rc   r!  r<   rV  r   r:  r8   )r   rj   r   r   r  r   r$   rp   r  r%  NAr
   r   rV   r   r;   r%   r?   r3  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                    [         R                  " [        S5      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 )Nr7   r   r   r   r?  r   r   r8   r4   r   r   r9   r   )r4   r7   r8   r   ))r   r   )r   r   )r   r   )r   r   r   rH  )rI  r   )r   r>   r=   r   r;   rh   rj   r:   r$   	swaplevel
sort_indexr%   r&   )r(   r   r"  r*   rB   rA   s         r    test_unstack_swaplevel_sortlevel5TestDataFrameReshape.test_unstack_swaplevel_sortlevel  s     $$eAhc
%;E5>RAA'rC:F

N**@PU
 $''Q'/:::O
f/r   r  )@__name__
__module____qualname____firstlineno__r   markfilterwarningsr1   rC   rQ   rw   r   r   r   r   r   r   parametrizer   rj   r   r   r   r   r  r  r  r$  r-  r6  r   rX  r    r?  rC  rN  rK   r^  rd  rh  rs  r{  r  r   r=   r  r   permutationsr  r  r  r  r  r  r	  r  r  r  r"  r+  r7  r=  rC  __static_attributes__r  r   r   r   r      s
   [[C>>$ [[C00.	. [[C0000d&0P0,0,0< 0D02 [[H |\<H&&4S#J &&D,
 ")+CDq!f3'&&	 2		
!D0E!D0((T [[C

< [[C6
6
p [[C;
;
z& [[C004.6/1b [[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+0'5R/.0 [[C [[FFFCCCFFF+	
4 [[Wr1a!Q!Q&@A4 B5<4B [[C00* [[C [[Y61 71 [[C [[Y6[[%[23%[23	
1 71& [[C	1	1 [[C [[	
CC [[C [[6Vc3Z)Y?VeU^WhA	
00  [[Wq!f-? .?. [[Wq%j10 20r   r   rV   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S/SS//[         R                  " SS/5      UUS9n[        R                  " XF5        UR	                  SSS9nU [
        L a  [        [        S5      SS//SS/SS//S9nOSS/nUS:X  a  [        R                  O[        R                  n[        SU/US/SU/US//U[         R                  " / SQ5      US9n[        R                  " XF5        UR	                  SS/SS9nU [
        L a$  [        [        S5      SS/SS//SS/SS/SS//S9nO[         R                  " SS/5      n[        SS/SS//S
S/UUS9n[        R                  " XF5        g )N))r  rX   r6   )r  rJ   r5   )r  rX   r6   )r  rJ   r5   r   r   r^   r   Fr   sort)r   r  )r   r  r  r  rF          @r   )rX   r6   )rJ   r5   )r:   r;   rV   rY   r7   r6   r5   r'  r.  ))r  rX   )r  rJ   )r  rX   )r  rJ   r;   r:   rV   r8   rX   rJ   )r   rj   r   r    r$   r   r%   r&   r=   r   r;  rK   )frame_or_seriesrV   r:   objrA   r   rB   items           r   test_unstack_sort_falserV  2  s    ""TE "))C-U
HC[[qu[-F)#%11:z2JK!5>
sc3Z $$j*%=> 	H &+[[r[.F)#%!HsCj)1a&1a&1A
  :Y&255BFFD
ttSkC;s< $$D
 H &+[[1vE[2F)#%!HsCj3*5q!fq!fqRSf=U
 &11:z2JK
sc3Z en 	H &+r   zlevels2, expected_columns)Nr7   r8   r4   value)rW  r7   )rW  r8   )rW  r4   )r7   Nr8   r4   )r7   r8   Nr4   )r7   r8   r4   N)z	nan=firstz
nan=secondz	nan=thirdznan=last)idsc           	      8   SS/n[         R                  " X /SS/S9n[        S/ SQ0US9nUR                  SS	S
9nSS/SS/SS/SS//n[        [	        [        X5      5      [        SS/SS9[         R                  " US S/S9S9n[        R                  " XW5        g )Nr6   r5   level1level2r   rW  )r   r7   r8   r4   rG   rT   rz   r{   r<   FrO  r   rG   r7   rT   r8   rz   r4   r{   r   r9   )
r   r>   r   r$   dictr  r   rj   r%   r&   )levels2r   levels1r:   r*   rA   r  rB   s           r   test_unstack_sort_false_nanr_  m  s    0 CjG##W$6x>RSE	G56e	DBZZhUZ3FVaVaVaV4MS!12S#JX.&&'7h?OPH
 &+r   c                     [        / 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  rU   rW   r5   r6   r   r\   r~   r^   r   rZ   )r5   r   r5   )r6   r   r   )r
   r   rj   r:   r$   r   r   rK   r   r  r%   r&   )rs   rA   rB   s      r   test_unstack_fill_frame_objectra    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   re  r   r7   r   r9   )	r   r   r   rm   r$   r   r   r%   r&   )r*   rA   rB   s      r   "test_unstack_timezone_aware_valuesrf    s    	,,'HUST		
 -
B \\3*%--/F
,,8U
CS	IJSE$ #&.q6Aq6"+
H &+r   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endrd  r   r   r<   r   rf   r   r   r   r'  )r   r   r#   r
   r   r%   r?   )r   tsr*   rA   rB   s        r    test_stack_timezone_aware_valuesrn    sh     
JJCU	VB	C9O	4BXX<X0F
3% 8I@VWH 6,r   r  c                    [         R                  " S5      [         R                  " S5      /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)Nr   r'  )rV   r:   dropna must be unspecifiedr`   rU   r  )r   
RangeIndexr
   r   r   r   r   r  r   r   r  r   r#   r%   r?   )r  r   r@   rB   rA   s        r   test_stack_empty_framerr    s     mmAa 01FBJJjrSUh.WXHcnn4]]:-IJBJJ'--V-W KJ ,22 3 
 	v0 KJs   %C++
C9c                    U(       aZ  U [         R                  LaG  [        R                  " [        SS9   [        [        R                  S9R                  XS9  S S S 5        g UnUR                  5       R                  / XS9n[        R                  " XC5        [        5       n[        5       R                  / XS9n[        R                  " XC5        g ! , (       d  f       g = f)Nrp  r`   rU   r  r  )r   r  r   r   r  r   r   rq   r#   r   r%   r&   )r  r   	int_framerB   rA   s        r   test_stack_empty_levelru    s     cnn4]]:-IJBHH%++6+U KJ !''V ( 
 	f/;""F"V
f/ KJs   %C
C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)Nrp  r`   rU   r  rZ   )r   r  r   r   r  r   r   rq   r#   r$   r%   r&   )r  r[   r   rA   rB   s        r   test_stack_unstack_empty_framerw    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`   rU   )r   r   r  r
   r   rq   r$   )rt   s    r    test_unstack_single_index_seriesry    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      #@r|   FTr   femalemale)rh   scoreemployedkidsgender)rh   r  r  r  r  rZ   r  r  )r}  rv  rv  rv  )rv  rv  rv  g       @rh   r   ))r  r~  Fr   )r  r~  Tr   )r  r  Fr   )r  r  Tr   )Nr  r  r  r   r9   )r   rm   r$   r   r   rj   r%   r&   )r*   rB   rA   s      r   test_unstacking_multi_index_dfr    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[        [        S5      SS	//SS/SS//S S/S9n[        SS/SS//XTS9n[        R                  " X65        g )NrH   )rJ   rX   r5   r   r7   r7   r7   r7   r   r   r   rJ   rX   r   r7   rI   r   r9   )r   r>   r   r#   r   r=   r%   r&   )r   r;   r*   rA   new_columnsr(  rB   s          r   2test_stack_positional_level_duplicate_column_namesr  ,  s     %%z:&>sCjQG	L>7	3BXXalX3Fc
-Ka3*%q!fq!f-=dC[I 1a&1a&)PH&+r   c                  D   [         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[        S UR                  R                   5       5      (       d   eUR                  5       n[        R                  " [        S5       Vs/ s H  o1U   R                  5       PM     sn[        S5      S	S
9n[         R"                  " X$5        g s  snf )NrT   rF  r8   rT  r  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>I  s     D^::++++^s   ')rG   r7   )keysrI  )r   r>   r=   r   r   r   r   r   rp   rq   anyrM   rN   r$   r   concatr%   r&   )r"  r*   rP   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 DRWW^^DDDDD
**,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   rP  Fr   r   r   rF   rQ  r   r   rH   )r   r   r7   r7   r8   r8   )r   r   r   r   r   r   r<   )r   rF   rQ  r   rF   )rQ  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   rs   r*   kwargsrA   rB   s         r   test_stack_sort_falser  Q  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   rQ  rF   r   r   r   r9   rP  Fr   r7   r   ))r   r  r  )r   r  r  )r   r  r  )r   r  r  )r   rQ  rF   r   r<   )r   rj   r   r#   r
   r%   r?   )r   r   r*   r  rA   r   rB   s          r   !test_stack_sort_false_multi_levelr  x  s     
 
 "2O!D
EC	S#Jc
+E5>3	OBRfe_FXXq!fB<B6BF++	
N *.AH6,r   c                   T
   \ 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5      \R                  R                  S\" S5      \" SS/SS//\R                  " \R                   " S5      R#                  S5      S5      \R                  " / SQS5      /S9/\R$                  " S5      \" 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       5       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\R                  R                  S5      \R                  R                  S&S'S(/5      S) 5       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S/ rS0 r\R                  R                  S5      S1 5       r \R                  R                  S5      S2 5       r!S3 r"S4 r#\R                  R                  S5      S5 5       r$\R                  RJ                  S6 5       r&\R                  R                  S5      \R                  R                  S7\'RP                  RS                  S8 S9 5       5      5      \R                  R                  S:\*" S5      5      S; 5       5       5       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       r0SA r1SB r2\R                  R                  S5      SC 5       r3\R                  R                  S5      SD 5       r4\R                  R                  S5      SE 5       r5SF r6\R                  R                  S5      SG 5       r7\R                  R                  S5      SH 5       r8SI r9SJr:g)K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$   rp   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   rm   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   rJ  rI  how)r   rj   r
   r   r   r   r   r$   r  r%   r&   )r(   r:   rv   r-   rB   s        r   &test_unstack_multiple_no_empty_columnsATestStackUnstackMultiLevel.test_unstack_multiple_no_empty_columns  sr    &&H
 299((+;;A>eLIIq!f%	###6
i2r   r   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   rJ  r  r8   rV  r   rY   r7   rH  r4   r   )r$   r#   r  r%   r&   rB  rA  rr   r?   reindexr:   assert_equal)r(   r  r   r  r-   	restackedunlexsortedrA   rB   r+   ymd_stackeds              r   
test_stack%TestStackUnstackMultiLevel.test_stack  s    > KKM	OOO>	!((U(3I
i-nn1n-''*	OOO>	!((U(3I
i222;SA!$B$'''*	OOO>HHAN	!((U(3I
i222;SA!++Aq1''*44Q4B	OOALOAKKAqQ	!((U(3I
i222;SA KKM	OOO>	!((U(3I
i- KKN**1-	>;;=
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, exp_idxababr5   r6   r  r  r4   )r   r7   r   rG   r'  )r5   r8   r6   r7   r5   r7   )r6   r8   r7   )r7   r   r7   )r4   rz   r4   c                    [        [        R                  " S5      R                  SS5      U/ SQ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                  " Xg5        UR                  R                  S
L d   eUR                  UR                  p[        R                  " X5        g ! , (       d  f       g = f)NrS  rG   r4   )r  r  r  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   exp_idxr   r*   rt   rA   rB   liris
             r   test_stack_duplicate_index5TestStackUnstackMultiLevel.test_stack_duplicate_index  s    8 IIbM!!!Q')

 LCz5l3 65 XX<X8Fbiim7;H""64<<))U222\\8>>!!") 65s   C99
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LunchrT   NoYes)r  r  r  )daytimesmokerr   rR  r   rU   )r  rL   r<   r   rJ  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_failureK  s     ##!ugk)UGaK75'A+E
Q'Q.(a?7)a-Ou!$77
 ,
 yy95yy95 
 A<8]]u]-F
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   rI  r   Fr  r   )	r'   rB  r#   r%   r?   rh   rV   r   r   )r(    multiindex_dataframe_random_datar   framer*   r+   rA   s          r   test_stack_mixed_dtype1TestStackUnstackMultiLevel.test_stack_mixed_dtypeg  s     1WW!=]]]+(((5El;FFH
wu~v5I{{"""u~##rzz111r   c           	      l   [        / SQ/ SQ/ SQ/ SQ[        R                  " S5      S.5      nUR                  / SQ5      R	                  [
        5      nUR                  5       nUR                  US9n[        R                  " XSR                  UR                  5      R                  [        5      5        g )	N)naiver  r  activer  r  )r5   r6   r6   r6   r5   r5   )r7   r8   r4   rG   r7   r4   )hir  byer  r  peaceg      @)r   r   barcoder  extra)r   r   r  r  r   )r   r   r    groupbyr  rL   r$   r#   r%   r?   r  r:   rp   rl   )r(   r   r*   rA   r-   r  s         r   test_unstack_bug+TestStackUnstackMultiLevel.test_unstack_bugw  s     R5-?3
 <=CCCHNN$	OOO>	
y..*I*P*PQV*WXr   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:   rh   r;   ro   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)rr   r   r   KeyErrorgetattrr<  )r(   r  r  r   r  r*   r  rv   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   rV  r   )r(   r  r  rA   rB   s        r   test_unstack_level_name2TestStackUnstackMultiLevel.test_unstack_level_name  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_name  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   rJ  r  r   r7   r8   rV  r  )r$   r%   r&   r;   ro   r#   r  rA  rB  r:   rr   )	r(   r  r   r  r-   rB   rv   s_unstackedr  s	            r   test_stack_unstack_multiple6TestStackUnstackMultiLevel.test_stack_unstack_multiple  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  rh   r   r   r4   strr   r7   r8   r4   rG   rT   rz   r<   r7   rV  r   )r  r  r  )r7   r4   rT   )r8   rG   rz   r!  r9   period1)2013-122013-112013-102013-092013-082013-07period2)r  r  r  r  r  r  r8   rG   rz   rT   )r   PeriodIndexr   r   r  r
   r$   r   r;   rh   r%   r&   r'   r   rK   )r(   idx1idx2rW  r   rv   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  )rz   rT   rG   r4   r8   r7   r!  r<   r7   rV  r   r(  r)  )r  r  r)  r  r  r)  zA A A B B B)rT   r7   rz   r8   rz   r7   )rG   r8   r4   r4   rT   rG   r9   )r(  r)  r(  r)  )r  r  r)  zA A B B)rT   rG   r8   r4   )r7   r8   rz   rT   )rz   r4   r7   rG   )	r   r  r   r  r   r$   r  r%   r&   )r(   r  r  rW  r   r*   r   r!  r"  e_1e_2r$  rB   s                r   test_unstack_period_frame4TestStackUnstackMultiLevel.test_unstack_period_frameN  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                 ^   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[        X4XVS
.5      nUR                  SS/5      nSUR                  l	        UR                  S5      n	[        R                  " S5      n
U(       a  S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  rz   )IDNAMEDATEVAR1r1  r/  Paramsz&agg function failed [how->mean,dtype->z-dtype 'str' does not support operation 'mean'r`   zW-THUT)numeric_onlyr   r2  )r   to_datetimer   r   r   integersr   rm   r;   rh   r$   reescaper   r   r   resamplemeanr#   rr   r%   r&   )r(   r   r5  id_colrh   datevar1r*   multiunstrt   downr  r  s                 r   test_stack_multiple_bug2TestStackUnstackMultiLevel.test_stack_multiple_bug}  si   
 #'qcAg&	seai(~~H1LMyy$$Q'00C;fDOPfd^,%}}T"ii@AAC]]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  rp  r`   T)r   rm   r   r  r$   r#   rL   r  r   r   r  r%   r&   )r(   r   r*   r  r+   s        r   test_stack_dropna,TestStackUnstackMultiLevel.test_stack_dropna  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:   ro   r;   r$   )r(   r   r*   s      r   "test_unstack_multiple_hierarchical=TestStackUnstackMultiLevel.test_unstack_multiple_hierarchical  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   ir{   rT   i   rz   i  )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r6  r   rm   r$   )r(   NUM_ROWSr*   idfs       r   test_unstack_sparse_keyspace7TestStackUnstackMultiLevel.test_unstack_sparse_keyspace  s    YY**1-66s6JYY**1-66s6JYY**1-66r186LYY**1-66sBX6NYY**1-66t(6KYY**1-==hG	
 ll45 	Cr   c                 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   r  r  rG  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_keys  s    
 a&,'|,6)ryy,,Q/??GuU6>>"a'''<8
f)r   c                 .    " 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                  " X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                   6   ^  \ rS rSrSU 4S jjrSS jrSrU =r$ )gTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32_warns.<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   r_  pTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32_warns.<locals>.MockUnstacker.__init__  s!     $1&1 =>>r   c                     g r   r  )r(   s    r   _make_selectorswTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32_warns.<locals>.MockUnstacker._make_selectors  s    r   r  )returnN)rE  rF  rG  rH  r_  re  rM  __classcell__)rb  s   @r   MockUnstackerr[    s    ?
 r   ri  
_Unstacker)   r8   rk  r<   z$The following operation may generater`   r]  )reshape_librj  contextsetattrr   r   rX  r    r%   rk   r   r   r`  r$   )r(   performance_warningmonkeypatchri  r  r*   rt   s          r   5test_unstack_number_of_levels_larger_than_int32_warnsPTestStackUnstackMultiLevel.test_unstack_number_of_levels_larger_than_int32_warns  s    	K22 	   "aIIk<?$yy'5)9:B 9C++,?K]]94QRJJL S L #" SR LK #"s<   A6D C5:C$C5D$
C2.C55
D	?D
Dr@   c              #   z   #    U  H1  n[         R                  " [         R                  " / S QU5      SS9v   M3     g7f)rf   r8   r   N)r   r   rL  )r  widths     r   r  $TestStackUnstackMultiLevel.<genexpr>	  s1      &
 i44YFqQs   9;r   	stack_levc                 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;   rs   rP  r   r7   )r   r   r=   r#   r:   r;   rr   )r(   r@   rv  rP  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'  rT   rY   )r;   r:   rs   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;   rr   r#   )r  ry  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   rJ  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;   rs   r:   rP  Tr   r  r   )r7   r7   r   r   r8   r8   r4   r4   )r7   r   r7   r   r7   r   r7   r   rK  )r8   r4   r8   r4   r8   r4   r8   r4   r  r<   )r   r   r=   r#   r%   r&   )
r(   r   r@   rv  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_21	  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5      [        R                   " SS/SS	/S9S9n	["        R$                  " X5        g s  snf s  snf )NrT   r6   r5   r   r  rI   r7   rH  r  r   a0b0rD  rF  rE  rG  a3b3a4b4)r5   rI   )r6   rI   r   r9   )r   r    vstackr   r'   r;   rh   r   r  ro   r  r  r#   r$   r=   r   rj   r%   r&   )
r(   r   r   rI   rs   r*   second_level_dictmulti_level_dfrA   rB   s
             r   'test_stack_unstack_unordered_multiindexBTestStackUnstackMultiLevel.test_stack_unstack_unordered_multiindexI	  sW   
 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   E E
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   r1  )r   r7   )r   r7   )r$   rV   r   r   object_)r(   r  r5  r  r-   s        r   test_unstack_preserve_types6TestStackUnstackMultiLevel.test_unstack_preserve_typesg	  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   r|   r   r7   r'  rO  r<   )r  r8   r   rG   )r   r  r    r   r   r
   r$   r"   r#   r%   r?   r  r:   )r(   r   r!  r   r:   rv   rA   r+   s           r   !test_unstack_group_index_overflow<TestStackUnstackMultiLevel.test_unstack_group_index_overflowx	  s    		#*		#7Q;1a&)'A+1!4!4S!9 ::

 299T?%0||x''' ,,L,9
q//!''":; F8ugk)99Q<&&s+,w{:

 299T?%01||x''' 7Q;1a&)UGaK77Q;"))A,"5"5c":!;;ugkI

 299T?%01||x'''r   c           	         [        / SQ/ SQS/S-  S.5      R                  SS/5      nSUS	'   [        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[        R                  " X#5        g )N)r   r   r   )cacbr  r9  r4   )r5   r6   r  r5   r6   r7   is_r8   r  r  r   )      $@r  r   r   r  rv  r   r   r   r   ))r  r  )r  r  r  )r  r  r   r9   )r   rm   rL   rM   rN   r$   r%  r   rK   r   r   rj   r%   r&   rr  s       r   +test_unstack_with_missing_int_cast_to_floatFTestStackUnstackMultiLevel.test_unstack_with_missing_int_cast_to_float	  s    $'TAX
 )S#J
 	 5	277>>"a'''C &} 5 < <Q ?}#bffdC%=>c
-**HSk
 	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 )Nr0  )r4   rG   r7   r8   r  )L1L2L3rI   )r  r  r  )n1n2n3Nr  )r@   r   r  r  )rI   r7   r  )r8   r4   r   r7   r   )	r   rm   r:   
set_levelsr$   rB  r   r%   r  )r(   r   
new_levelsrA   rB   s        r   test_unstack_with_level_has_nan:TestStackUnstackMultiLevel.test_unstack_with_level_has_nan	  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   rT   ))r   NN)r   r8   r   )r   r8   r7   )r   r4   r   )r   r4   r7   r   r8   r   r   rv  r   rl  )rY   r   r7   r'  r4   )r   N)r   r   r  )r  )r   r8   )r   r4   r9   )
r   r   rX  r   rj   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_columns	  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                  " XESS9  g )Nr   r8   r   r  ccddr|   rG   r   r7   r   r   r4   rT   rz   r{   ababababccddccddr   aabbaabbcdcdcdcdF)check_index_type)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Gr   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   rR  r   r6   r  r  r   )r   r6   )r7   r6   rv  rQ  rF   r   r   )r   r   r    r   r   rj   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   r  )r   r   )r   r7   )
r   r>   r   r   r   r$   rj   r;   r%   r&   r   s        r    test_unstack_categorical_columns;TestStackUnstackMultiLevel.test_unstack_categorical_columnsK
  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)rs   r:   r;   r  r  r   i'  )A0r  r   r7   rH  )r   r>   r   r=   rL   r   r$   r;   re  rr   r#   rB  r%   r?   )
r(   r   r  r  r  r   VDFrA   rB   s
             r   test_stack_unsorted.TestStackUnstackMultiLevel.test_stack_unsortedZ
  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  rR  r   r   )r   r  r  g      "@g     s@g     [@rU   )r  r  r  r  r  r  )r  r  r<   )r   r>   r   r   r  r   r   
Int64Dtyper#   rp   rq   r%   r&   r;   Float64Dtyper@   rh   )r(   r   r;   r:   arrr*   rA   rB   s           r   test_stack_nullable_dtype4TestStackUnstackMultiLevel.test_stack_nullable_dtypes
  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$   rj   r%   r&   )r(   arraysr   r*   rA   rB   s         r   test_unstack_mixed_level_names9TestStackUnstackMultiLevel.test_unstack_mixed_level_names
  s    *q!fufo6$$V=AaV}C0CS1#J**J<c{K((*k)B1c(S

 	f/r   r  );rE  rF  rG  rH  r  r   rI  rK  r  r  rJ  r  r   r   r   r  r    r   rj   r  r  r  r  r  r  r  r  r  r  r
  r%  r,  rA  rH  rL  rT  rW  slowrq  r   chainfrom_iterabler=   r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rM  r  r   r   r  r    s   ' [[? 01OP>(	 *+CD6"	 *+FG6"		
.0/.0(	3 [[CJ*J*X [[C [[ V #J777299Q<#6#6q#91=rwwyRS?TU &&'OP #JA?		! 3 3A 6:		)Y7	1-
	
.*/4*& [[C**2 [[C22 [[CYY  [[C
:
: [[C [[X';<8 =8&0 [[C
1
1 [[C M MD [[C	E	E [[CAAC3J-1^ [[C&&6 [[C==  * [[C** [[! !4 [[C [[%% &
&
 	
 [[[%(3* 4*" [[C

$ [[C00* [[C0065" [[C#(#(J0600 [[C008 [[C5H5Hn [[C0080 [[C11, [[C#0#0J0r   r  c           	          [        / SQ/ SQ/ SQ// SQS9nUR                  U S9n[        / SQ[        [	        S5      / SQ// S	Q/ S
Q/S9S9n[
        R                  " X#5        g )Nr   )rG   rT   rz   )r{   r|   r   )r  r  r  r   r   )	r7   r8   r4   rG   rT   rz   r{   r|   r   r4   )	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   r*   rA   rB   s       r   test_stack_tuple_columnsr  
  sh     
	Iy)3Q
B XX<X0F#!H<=.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	                  5       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   rU   r5   r7   r<   )r   r  r   r   r#   r
   r%   r?   )rV   r2  r  r:   r*   rA   r   rB   s           r   test_stack_preserves_nar  
  s     &&qE8*E,J+K'KLxj.	C!:U	+BXXZF#//xj.xj.se
 $//xj.se
 a~.H6,r   )3r   r   r7  numpyr   r   pandas._libsr   pandas.errorsr   pandasr   r   r   r   r	   r
   r   r   pandas._testing_testingr%   pandas.core.reshaper   rl  fixturer   r   rI  rK  rV  rK   r_  ra  rf  rJ  rn  r  rr  ru  rw  ry  r  r  r  r  r  r  r  r;  r  r  r   r   <module>r     s     	    (     6 e}% &Q0 Q0h( 9i"897, :7,t  rvvlLI	

 GRVV,lLI	

 <'266):LI	

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