
    d1W                       d dl mZm Z mZ d dlmZ d dlZd dlZd dlm	Z	 d dl
Zd dl
mZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ  ej        d	d
g          d             Z  ej        d gdz  dgdz  f e!d d           e!dd          fg          d             Z" G d d          Z# G d d          Z$dS )    )datedatetime	timedelta)productN)PerformanceWarning)Categorical	DataFrameGrouperIndex
MultiIndexSeriesconcat
date_range)CategoricalDtype)reshapepivot_tableTF)paramsc                     | j         S N)param)requests    [/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/reshape/test_pivot.pydropnar      s
    =             c                 r    | j         \  }}t          t          j                            |||                    S r   )r   r   pdIntervalIndexfrom_arrays)r   closedleftrights       r   interval_valuesr&   #   s0    -KD%r'33D%HHIIIr   c                   	   e Zd Zej        d             Zd Zd Zd Zd Z	d Z
d Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zej                            ddddgfdg dfdg dfg          d             Zd Zd Zd Zej                            dddg          d             Zej                            dddg          d             Zej                            dddg          d             Zd  Zej                            dddg          d!             Zd" Zej                            d#d$d%g e j!        d$d%g           e"d$d%g           e#d$d%g          g          ej                            dddg          d&                         Z$ej                            d#d'd$g e j!        d'd$g           e"d'd$g           e#d'd$g          g          ej                            dddg          d(                         Z%d) Z&ej        '                    d*+          ej                            dddg          d,                         Z(ej                            dddg          d-             Z)d.d/gd0gd1fd2Z*d3 Z+d4 Z,ej                            d5d.e j-        g d6g d7g e#g d8d.9          fd.d/gd:g d;g d<g e.j/        g d=d.d/g>          fg          d?             Z0d@ Z1dA Z2ej                            dBg dC          dD             Z3dE Z4dF Z5dG Z6dH Z7dI Z8dJ Z9dK Z:dL Z;dM Z<ej                            dNdOdPdQdRdSdTgg          dU             Z=dV Z>dW Z?dX Z@dY ZAej                            dZ eBd[d\                    d]             ZCej                            dZ eBd[d^                    d_             ZDd` ZEda ZFdb ZGdc ZHdd ZIde ZJdf ZKdg ZLdh ZMdi ZNdj ZOej                            dkd:e jP        fdle j-        fdme jQ        fd:dlge jP        e j-        gfd:dmge jP        e jQ        gfdmdlge jQ        e j-        gfg          dn             ZRej        jS        do             ZTdp ZUdq ZVej                            drddg          ds             ZWdt ZXdu ZYdv ZZdw Z[dx Z\dy Z]ej                            dzddg          d{             Z^d| Z_d} Z`dRS )~TestPivotTablec           
          t          g dg dg dt          j                            d          t          j                            d          t          j                            d          d          S )Nfoor+   r+   r+   barr,   r,   r,   r+   r+   r+   oner.   r.   twor.   r.   r.   r/   r/   r/   r.   )dullr0   shinyr0   r0   r1   r1   r0   r1   r1   r1      )ABCDEF)r	   nprandomrandn)selfs    r   datazTestPivotTable.data*   s           Y__R((Y__R((Y__R((U+ +-
 -
 -	
r   c                    ddg}d}t          |d|||          }|                     d|||          }t          j        ||           t          |d||           t          |          dk    r |j        j        t          |          k    sJ n|j        j        |d         k    sJ t          |          dk    r|j        j        |k    sJ n|j        j        |d         k    sJ |	                    ||gz             d         
                    t          j                                                  }t          j        ||           d S )	Nr3   r4   r5   r6   )valuesindexcolumnsobserved)r?   r@   rB   r   r   )r   tmassert_frame_equallenr@   namestuplenamerA   groupbyaggr9   meanunstack)r<   rB   r=   r@   rA   tabletable2expecteds           r   test_pivot_tablezTestPivotTable.test_pivot_table[   s`   c
E7X
 
 
 !!eWx " 
 
 	eV,,, 	DEHEEEEu::>>;$e44444;#uQx////w<<!=&'11111=%3333<<	 12237;;BGDDLLNN
eX.....r   c                    t          t          d          t          d          g dd          }|                    dddt          j        d	          }|j                            d
          |_        |j                            d
          |_        |j                            d
          |_        |j	                            d
          |_	        |                    dddt          j        d|          }t          j        ||           d S )Nabcdefghijr      r   r      col1col2col3rX   rZ   rY   r   )r@   r?   rA   aggfunc
fill_valuecategory)r@   r?   rA   r[   r\   rB   )r	   listr   r9   sumr@   astyperA   rX   rY   rC   rD   )r<   rB   dfrO   results        r   +test_pivot_table_categorical_observed_equalz:TestPivotTable.test_pivot_table_categorical_observed_equalw   s    ']]DMM???SS
 
 >>TU " 
 
 "..z::#+22:>>'..,,'..,,F   
 
 	fh/////r   c                    t          g dg dg dd          }|                    dt          j                  }|                    dt          j                  j        }t          j        ||           |                    ddd	i          }|                    ddd	i          j        }t          j        ||           d S )
Nabcxyzr   rU   r   )rowscolsr?   ro   )rA   r[   r@   r[   r?   rK   )r	   r   r9   r_   TrC   rD   )r<   ra   rsxps       r   test_pivot_table_nocolsz&TestPivotTable.test_pivot_table_nocols   s    $__oooSS
 
 ^^FBF^;;^^&"&^99;
b"%%%^^FXv4F^GG^^&8V2D^EEG
b"%%%%%r   c                 j   t          ddddddddddd	d
dddddddddddddd          }|                    ddddgd          }|                    dddgdd          }t          j        g dddg          }t	          j        |j        |           t	          j        |j        |           d S )Ni`  i iP  i0u  )r   r   rU   r   r3   r4   r5   i[ i] i\ i^ rf   rg   rh   di i  i@B )amountcustomermonthr   quantityrz   ry   rx   r   F)r   ))r3   rf   )r3   rg   )r3   rh   )r3   rv   )r4   rf   )r4   rg   )r4   rh   )r4   rv   )r5   rf   )r5   rg   )r5   rh   )r5   rv   rF   )r	   r   r   from_tuplesrC   assert_index_equalrA   r@   )r<   ra   pv_colpv_indms        r   test_pivot_table_dropnaz&TestPivotTable.test_pivot_table_dropna   s   #5UCC #<<#6fEE"sss;; 'Fw7KK 
 
 *i!8   
 
 Y/   
 
 "   y)
 
 
" 	fna000
flA.....r   c                 :   t          g dg dd          }t          g dg dd          }t          ||g dd          }t          |d	d
dgd          }t          j        ||gd
dg          }t          d	g di|          }t          j        ||           d S )Nrf   rf   rg   rg   )rf   rg   rl   T
categoriesordered)rh   rv   rh   rv   )rh   rv   rk   r   rU   r   r   )r3   r4   r?   r?   r3   r4   )r?   r@   r   r{   r@   )r   r	   r   r   r"   rC   rD   )r<   cat1cat2ra   rb   	exp_indexrO   s          r   test_pivot_table_categoricalz+TestPivotTable.test_pivot_table_categorical   s       ___d
 
 
    ___d
 
 
 TEEFFRc
4PPP*D$<SzJJJ	h5YGGG
fh/////r   c                 H   g d}t          g dg dt          dd          d          }|d                             t          |d	                    |d<   |                    d
dd|          }t          g dd          }|                    t          |d	                    }t          g dd
          }t          g dg dg dg||          }|s6|                    t          |                                        d          }t          j	        ||           d S )N)rf   rg   rh   rv   )	rf   rf   rf   rg   rg   rg   rh   rh   rh   )	r   rU   r   r   rU   r   r   rU   r   r   	   r3   r4   r5   r3   Fr   r4   r5   )r@   rA   r?   r   re   rH   rm   )r   r      )r   r      )rU   rV      r@   rA   rA   float)
r	   ranger`   CDTr   r   reindexr   rC   rD   )r<   r   r   ra   rb   expected_columnsexpected_indexrO   s           r   $test_pivot_table_dropna_categoricalsz3TestPivotTable.test_pivot_table_dropna_categoricals   sS   )))
BBB0001a[[ 
 
 S'..Z!?!?!?@@3c3s6RR!///<<<+223z53Q3Q3QRR			444YY			999- $
 
 

  	Y''J0G0G'HHOOPWXXH
fh/////r   c           
      D   t          t          t          j        ddddgddgd          g dd          }|                    dd|	          }t          dd
dgit          t          j        ddgddgd          d                    }t          j        ||           d S )NlowhighTr   )              ?       @      @      @r3   r4   r3   r4   r@   r?   r   r   r   r   r   r   r   )	r	   r   r9   nanr   r   
from_codesrC   rD   r<   r   ra   rb   rO   s        r   %test_pivot_with_non_observable_dropnaz4TestPivotTable.test_pivot_with_non_observable_dropna   s     VUFE6: %v   
 /.. 	
 	
 c#fEE3*&Fv   	  
 
 
 	fh/////r   c           
         t          t          g dg dd          t          d          d          }|                    dd|	          }t          dg d
it	          t          j        g dg dd          d                    }|s#|d                             t                    |d<   t          j	        ||           d S )N)r$   r   r   r   r   )r   r   r$   Tr   rV   r   r3   r4   r   )rU   r   r   )r   r   rU   r   r   )
r	   r   r   r   r   r   r`   r   rC   rD   r   s        r   /test_pivot_with_non_observable_dropna_multi_catz>TestPivotTable.test_pivot_with_non_observable_dropna_multi_cat  s    :::666   
 1XX 	
 	
 c#fEE)))&II*A*A*A4   	  
 
 
  	8$SM0077HSM
fh/////r   c                 $   t          |dd          }|                    dd|          }t          ddit          |                                d                    }|s|                    t
                    }t          j        ||           d S )Nr   r   r3   r4   r   r   r   )r	   r   r   uniquer`   r   rC   rD   )r<   r&   r   ra   rb   rO   s         r   test_pivot_with_interval_indexz-TestPivotTable.test_pivot_with_interval_index#  s    _15566c#fEEc1XU?3I3I3K3KRU-V-V-VWWW 	.u--H
fh/////r   c           
         t           j                            g dg d          }t          t	          j        dddt          j                  g dt          |d	                              d
          d          }t          |ddddd          }|d         }t          g dt          t          j        dd          t          j        dd          dgd          dt          j                  }t          j        ||           d S )Nr   r   r   r   r   r   rU   rU   r   r   dtyperf   rg   rf   rg   Tr   F)	ascendingr   r5   r4   r3   r_   r@   rA   r?   r[   marginsAll)r   r   
   r   rU   r   )r@   rH   r   )r    r!   r"   r	   r9   arangeintpr   sort_valuesr   r   r   IntervalrC   assert_series_equal)r<   ordered_catra   	pivot_tabrb   rO   s         r   &test_pivot_with_interval_index_marginsz5TestPivotTable.test_pivot_with_interval_index_margins,  s!   &22<<<NNYq!Rrw777))) d;;;GG# H   
 
  c3sE4
 
 
	 5!JJQ**BK1,=,=uECPPP'	
 
 
 	vx00000r   c                     |                     d|j        |j                  }|                     ddd          }t          j        ||           d S )Nr6   r   r3   r5   )r   r3   r5   rC   rD   r<   r=   rb   rO   s       r   test_pass_arrayzTestPivotTable.test_pass_arrayF  sS    !!#TVTV!DD##CsC#@@
fh/////r   c                     |                     dd |j                  }|                     d|j        dz  d          }t          j        ||           d S )Nr6   c                     | dz  S )NrV    rj   s    r   <lambda>z3TestPivotTable.test_pass_function.<locals>.<lambda>L  s
    qAv r   r   rV   r5   )r   r5   r@   rC   rD   r   s       r   test_pass_functionz!TestPivotTable.test_pass_functionK  s[    !!#-=-=tv!NN##CtzQ#LL
fh/////r   c                     ddg}d}t          |||          }|                    ||gz                                 t          j                                                  }t          j        ||           d S )Nr3   r4   r5   r   )r   rI   rJ   r9   rK   rL   rC   rD   )r<   r=   r@   rA   rM   rO   s         r   test_pivot_table_multiplez(TestPivotTable.test_pivot_table_multipleP  sq    c
Dw???<<	 12266rw??GGII
eX.....r   c                    t          g dg dg dd          }|j        d         dk    sJ t          |ddgdgd	t          j        
          }|j        }t          t          j        d          gdz  t          t          d          d                    }t          j
        ||           t          g dg dg dd          }|j        d         dk    sJ t          |ddgdgd	t          j        
          }|j        }t          t          j        d          gdz  t          t          d          d                    }t          j
        ||           d S )N)catbatr   r   r   r   )rf   vir   int64rf   r   r   )r?   r@   rA   r\   r[   rU   abr   r   )      ?      @      @      @float64)r	   dtypesr   r9   r_   r   r   r   r^   rC   r   rK   )r<   frl   rb   rO   s        r   test_pivot_dtypesz TestPivotTable.test_pivot_dtypesW  s   111!\\))) 
 
 x}''''c#!RV
 
 
 28G,,-1tDzzPS9T9T9TUUU
vx000 111)))))) 
 
 x}	))))c#!RW
 
 
 28I../!35dRU;V;V;VWWW
vx00000r   zcolumns,valuesbool1float1float2)r   r   r   bool2c                 (   t          j        dt           j                  }t          ||dz   |dk    |dk    d          }|                                                    d||          }t          |j                  }d	 |D             }||k    sJ d S )
NrV   r   r   rU   r   )r   r   r   r   r@   r@   rA   r?   c                 8    i | ]}|t          j        d           S )r   )r9   r   ).0cols     r   
<dictcomp>z=TestPivotTable.test_pivot_preserve_dtypes.<locals>.<dictcomp>  s$    ???C),,???r   )r9   r   r   r	   reset_indexr   dictr   )r<   rA   r?   r   ra   df_resrb   rO   s           r   test_pivot_preserve_dtypesz)TestPivotTable.test_pivot_preserve_dtypesz  s     Iarz***AGa1fqAvNN
 
 !!--76 . 
 
 fm$$?????!!!!!!r   c                 z   t          j        g d          }t          dg di|          }|                    |j        j        |j        j                  }t          j        ddg          }|	                    |j
        d                             t          j                  d	          }t          d
dgdt          j        ggt          ddgt          j                  |          }t!          j        ||           t          g dt%          ddd          d|          }|                    |j        j        t'          dd                    }t          j        dt          j        d          fg          }d dg|_        t          ddgt          ddgt          j                  |          }t!          j        ||           |                    t'          d          t'          dd                    }t          dgt          j        dgd          |          }t!          j        ||           d S )N)
2011-01-01z
2011-02-01
2011-01-02r   r   r3   rT   r   r   )r3   r   )r3   rU   r   )levelr   r   r   rU   r   r   r6   rV   )freqperiods)r3   dtr   M)keyr   z
2011-01-31      
@r   r   z
2011-12-31)r    DatetimeIndexr	   r   r@   ry   dayr   r|   
set_levelslevelsr`   r9   int32r   r   rC   rD   r   r
   	TimestamprF   )r<   idxra   resexp_columnsexps         r   test_pivot_no_valuesz#TestPivotTable.test_pivot_no_values  sT   RRR
 
 ___-S999nn28>28<nHH ,h-ABB!,,q!((22! - 
 
 3Z#rv'Abh///
 
 

 	c3'''$__ CCCC  
 
 
 nn28>7tRU;V;V;VnWW ,sBL4N4N.O-PQQ!4L3KuaV28<<<k
 
 
 	c3'''nns###WC-H-H-H  
 
 Cr'SAAA;
 
 
 	c3'''''r   c                     t          |ddgdddgd          }t          |                    dgd	
          dddgd          }t          j        ||           d S )Nr6   r7   r3   r4   r5   r   )r?   r@   rA   r\   r8   r   axis)r@   rA   r\   )r   droprC   rD   r   s       r   test_pivot_multi_valuesz&TestPivotTable.test_pivot_multi_values  sz    #s3c
q
 
 
 IIse!I$$C#sPQ
 
 
 	fh/////r   c                    fd} |t           j        t           j        g          } |t           j                  } |t           j                  }t          ||gddgd          }t	          j        ||           fd} |t           j        t           j        g          } |t           j                  } |t           j                  }t          ||gddgd          }t	          j        ||           d S )Nc                 4    t          ddgddgd|           S )Nr6   r7   r3   r4   r5   r?   r@   rA   r[   r   funcr=   s    r   r   z;TestPivotTable.test_pivot_multi_functions.<locals>.<lambda>  s)    #sC:sD
 
 
 r   rK   stdr   )keysr  c                 6    t          ddgddgd| d          S )Nr6   r7   r3   r4   r5   T)r?   r@   rA   r[   r   r   r  s    r   r   z;TestPivotTable.test_pivot_multi_functions.<locals>.<lambda>  s0    :*
 
 
 r   )r9   rK   r  r   rC   rD   )r<   r=   r   rb   meansstdsrO   s    `     r   test_pivot_multi_functionsz)TestPivotTable.test_pivot_multi_functions  s   
 
 
 
 BGRV$%%"'

qyy5$-vuoAFFF
fh///
 
 
 
 BGRV$%%"'

qyy5$-vuoAFFF
fh/////r   methodTFc           	         t           j        }t          dd|dgg dg dd          }|r|                    ddd	
          }nt	          j        |ddd	
          }t          ||d|gd|||g|d||g|||dggt          |dddgd          t          g dd                    }t          j        ||           t          j        |                    ddd	
          |j                   d S )NR1R2R4)C1C2C3C4)r            re   rf   rg   rh   r   r  r   r  r  r   r   )	r9   r   r	   pivotr    r   rC   rD   rq   )r<   r  r   ra   rb   rO   s         r   test_pivot_index_with_nanz(TestPivotTable.test_pivot_index_with_nan  s;    fD#t,---%%% 
 
  	FXXCSXAAFFXbSEEEFc2s#S#s#b#s#c3#	 dD$/c:::222===	
 	
 	
 	fh///
bhhS#chJJHJWWWWWr   c                 *   t          t          ddd          dt          j        d          z   d          }|d         t	          j        d          z
  |d	<   t          j        x|j        d
<   |j        d<   t          j        x|j        d<   |j        d<   |r|                    dd	d          }nt	          j        |dd	d          }|	                                j
                                        t          |          k    sJ |                                D ],\  }}|j        |d         |d	         f         |d         k    sJ -|r|                    d	dd          }nt	          j        |d	dd          }t          j        ||j                   d S )Nz
2014-02-01r   r6   )r   r   d   )rf   rh   rf   z
2014-02-02rg   )r   rf   )r   rf   r   rg   )r   rg   rh   r   )r	   r   r9   r   r    r   r   locr  notnar?   r_   rE   iterrowsrC   rD   rq   )r<   r  ra   pv_rowrb   s          r   test_pivot_index_with_nan_datesz.TestPivotTable.test_pivot_index_with_nan_dates  s    acBBB29Q<<' 
 
 S'BL6663*,&0v*,&0v 	BS==BB"CSAAABxxzz $$&&#b''1111kkmm 	: 	:FAs6#c(CH,-S99999 	FXXCSXAAFFXbSEEEF
fbd+++++r   c                    t          t          ddddd          t          ddddd          t          ddddd          t          ddddd          gt          ddddd          t          ddddd          t          ddddd          t          ddddd          gt          j        dd	          t          j        dd	          d
          }|d                             d           |d<   |d                             d           |d<   t          g d          }t          j        ddgdz  dd          }t          j	        ||g          }t          g dg dgt          j        ddgdd          |          }|r|
                    dd          }nt          j
        |dd          }t          j        ||           t          ddgddggt          j        ddgdd          t          j        ddgdd                    }|r|
                    ddd          }nt          j
        |ddd          }t          j        ||           d S )N  r   r   r   rU     r   r   r   )dt1dt2data1data2r.  c                 .    t          j        | d          S N
US/Pacifictzr    r   rv   s    r   r   z3TestPivotTable.test_pivot_with_tz.<locals>.<lambda>+      bl1.N.N.N r   r/  c                 .    t          j        | d          S N
Asia/Tokyor5  r7  r8  s    r   r   z3TestPivotTable.test_pivot_with_tz.<locals>.<lambda>,  r9  r   r0  r0  r1  r1  z2014/01/01 09:00z2014/01/02 09:00r<  )rH   r6  r   rU   r   rU   r   r   r   r   z2013/01/01 09:00z2013/01/02 09:00r4  r   r   r0  r   )r	   r   r9   r   applyr   r    r   r   r"   r  rC   rD   r<   r  ra   exp_col1exp_col2exp_colrO   r'  s           r   test_pivot_with_tzz!TestPivotTable.test_pivot_with_tz  s     T1aA..T1aA..T1aA..T1aA..	 T1aA..T1aA..T1aA..T1aA..	 1G4441G444 
 
& uIOO$N$NOO5	uIOO$N$NOO5	===>>#!34q8u
 
 
 ((H)=>>\\<<<("#%78u   
 
 
  	:u55BB"E5999B
b(+++VaV"#%78u   $#%78u  
 
 
  	JuWEEBB"E5IIIB
b(+++++r   c                 b   t          dt          j        dd          ddt          j        dd          ddt          j        dd          ddt          j        dd          ddt          j        d	d          dg          }|                    d
                                          }|j                            d           }t          |                    d
                                          d
dg|gt          j	                  }t          t          j        dd          t          j        dd          ggt          dgd          t          j        t          j        dd          t          j        dd          gd
                    }t          j        ||           d S )Naaz2016-08-12 13:00:00-0700r4  r5  )uidtsz2016-08-12 08:00:00-0700z2016-08-12 14:00:00-0700z2016-08-25 11:00:00-0700z2016-08-25 13:00:00-0700rI  c                 4    |                      dddd          S )Nr   )hourminutesecondmicrosecond)replacer   s    r   r   z8TestPivotTable.test_pivot_tz_in_values.<locals>.<lambda>m  s    199!AaUV9#W#W r   rH  r
  r   z2016-08-12 00:00:00z2016-08-25 00:00:00r   )r	   r    r   	set_indexr   rI  mapr   r9   minr   r   rC   rD   )r<   ra   minsrb   rO   s        r   test_pivot_tz_in_valuesz&TestPivotTable.test_pivot_tz_in_valuesQ  s     ,'AlSSS 
  ,'AlSSS 
  ,'AlSSS 
  ,'AlSSS 
  ,'AlSSS #
 
2 \\$++--uyyWWXXLL**,,'FF
 
 
  L!;MMML!;MMM U+++$L!6<HHHL!6<HHH   
 
 
  	fh/////r   c           
      J   t          t          j        dd          t          j        dd          t          j        dd          t          j        dd          gt          j        dd          t          j        dd          t          j        dd          t          j        dd          gt          j        dd	          t          j        dd	          d
          }t          g d          }t          j        ddgdz  dd          }t          j        ||g          }t          g dg dgt          j        ddgdd          |          }|r|	                    dd          }nt          j	        |dd          }t          j        ||           t          ddgddggt          j        ddgdd          t          j        ddgdd                    }|r|	                    ddd          }nt          j	        |ddd          }t          j        ||           d S )Nz
2013-01-01r6   z
2013-01-02z2013-01r   z2013-02r   r   r   )p1p2r0  r1  r=  rU   rW  )rH   r   r>  r?  rV  r   r   r   r   r0  r   )r	   r    Periodr9   r   r   PeriodIndexr   r"   r  rC   rD   rA  s           r   test_pivot_periodsz!TestPivotTable.test_pivot_periods  sG    IlC00IlC00IlC00IlC00	 Ii--Ii--Ii--Ii--	 1G4441G444 
 
& ===>>>9i"81"<4cRRR((H)=>>\\<<<(.,!=DsSSS
 
 

  	8d33BB"D$777B
b(+++VaV.,!=DsSSSNIy#93OOO
 
 

  	Hd7CCBB"D$wGGGB
b(+++++r   c           
         t          g dt          j        d          t          j        d          t          j        d          t          j        d          gdd          }t          dt          g dd          t          t          j        d          t          j        d          d	gd
                    }|                    dd
dd          }t          j        ||           d S )Nr   2019Q12019Q2r   )rf   rg   rj   r   rU   r   rf   r   r   rg   )r=   r@   rA   rj   T)r@   rA   r?   r   )r	   r    rX  r   r   rC   rD   )r<   ra   rO   rb   s       r   test_pivot_periods_with_marginsz.TestPivotTable.test_pivot_periods_with_margins  s    !\\Ih''Ih''Ih''Ih''	 	 	
 
 C00029X..	(0C0CUKRUVVV
 
 
 c3sDQQ
h/////r   r?   bazzooc                 j   t          g dg dg dg dd          }|r|                    dd|          }nt          j        |dd|          }g d	g d
g}t          ddgd          }t	          ddgg dgg dg dgd dg          }t          |||d          }t          j        ||           d S )Nr.   r.   r.   r/   r/   r/   r3   r4   r5   r3   r4   r5   r   rU   r   r   rV   r   rj   rk   rl   qwtr+   r,   r`  ra  r+   r,   r   )r   rU   r   rj   rk   rl   )r   rV   r   rg  rh  ri  r.   r/   r=   rH   r`  ra  r   )r   r   r   r   r   r   )r   r   rU   r   r   rU   r   codesrF   objectr=   r@   rA   r   )r	   r  r    r   r   rC   rD   	r<   r?   r  ra   rb   r=   r@   rA   rO   s	            r    test_pivot_with_list_like_valuesz/TestPivotTable.test_pivot_with_list_like_values  s    AAA555)))555	 
 
  	MXXE5XHHFFXbuVLLLF(((*B*B*BCE5>666ENOOO4%%%'9'9'9:-
 
 

 $eWHUUU
fh/////r   r,   c           	         t          g dg dg dg dd          }|r|                    dd|          }nt          j        |dd|          }t          j        d	t          j        d
gt          j        dt          j        dgt          j        dt          j        dgd	t          j        dt          j        gdt          j        dt          j        gdt          j        dt          j        gg}t          g dd          }t          ddgddggg dg dgd dg          }t          |||d          }t          j        ||           d S )Nrc  rd  re  rf  rj  ra  r+   r   r3   r   r5   r   r4   rV   r   rU   r   )rg  ri  rh  rj   rk   rl   rk  r,   r`  r.   r/   r   r   r   r   r   rl  rn  ro  )	r	   r  r    r9   r   r   r   rC   rD   rp  s	            r   %test_pivot_with_list_like_values_nansz4TestPivotTable.test_pivot_with_list_like_values_nans  sm    AAA555)))555	 
 
  	MXXE5XHHFFXbuVLLLF VS"&!$VS"&!$VS"&!$"&!RV$"&!RV$"&!RV$
 999FFFENUEN3<<.-
 
 

 $eWHUUU
fh/////r   c                     t          g dg dg dd          }d}t          j        t          |          5  |                    dd           d d d            d S # 1 swxY w Y   d S )	Nre   rm   rW   z=pivot\(\) missing 1 required keyword-only argument: 'columns'matchrX   rZ   )r@   r?   r	   pytestraises	TypeErrorr  )r<   ra   msgs      r   #test_pivot_columns_none_raise_errorz2TestPivotTable.test_pivot_columns_none_raise_error  s    IIIVVWWN]9C000 	2 	2HH6&H111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   AA #A zBMultiIndexed unstack with tuple names fails with KeyError GH#19966reasonc                    t          g d          }g dg dg dg dg dg dg}t          d	d
gddggg dg dg          }t          |||d          }|r|                    ddd          }nt	          j        |ddd          }t          ddgddg          t          ddgddg          t          ddgddg          d}t          |          }t          j        ||           d S ) Nr   r   rU   r   r   rV   r=   )r.   r3   r   rj   )r.   r4   rU   rk   )r.   r5   r   rl   )r/   r3   r   rg  )r/   r4   rV   rh  )r/   r5   r   ri  r,   r`  firstrM  r   rs  )r   rm  rn  ro  )r,   r  )r,   rM  )r`  r  r   r   r   r.   r/   r   rU   rV   r   r   r   )r   r   r	   r  r    r   rC   rD   )r<   r  r@   r=   rA   ra   rb   rO   s           r   test_pivot_with_multiindexz)TestPivotTable.test_pivot_with_multiindex$  sr    ---...                  
 ENWh$78<<.
 
 
 DwhOOO 	XX&)'   FF X&)'	  F Auen555Auen555Auen555
 

 T??
fh/////r   c                    t          g dg dg dg dd          }t          j        t          d          5  |r|                    dd	d
           nt          j        |dd	d
           d d d            d S # 1 swxY w Y   d S )Nrc  rd  re  rf  rj  z^\('bar', 'baz'\)$rv  ra  r+   )r,   r`  r   )r	   ry  rz  KeyErrorr  r    )r<   r  ra   s      r   test_pivot_with_tuple_of_valuesz.TestPivotTable.test_pivot_with_tuple_of_valuesN  s    AAA555)))555	 
 
 ]8+@AAA 	P 	P PueNKKKK5%OOOO	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	Ps   4A99A= A=r3   r4   r5   r   c                 L   |j         |j        d d         |f         }|                    |          |                                         }t	          j        ||d           |j        |k    sJ |                                }|j         |df         j        d d         }	|                    |          |                                         }
t	          j        |	|
d           |	j        |dfk    sJ |j         |df|f         }||                                         }||k    sJ d S )Nr   Fcheck_names )	r$  r@   rI   rK   rC   r   rH   
sort_indexiloc)r<   rb   
values_colr=   r@   rA   margins_colcol_marginsexpected_col_marginsindex_marginsexpected_ix_marginsgrand_total_marginsexpected_total_marginss                r   _check_outputzTestPivotTable._check_output`  s9    jcrc!2K!?@#||E22:>CCEE
{,@eTTTT;....""$$
K#45:3B3?"ll733J?DDFF
}.AuUUUU!k2%66666$j+r):K)GH!%j!1!6!6!8!8"&<<<<<<<r   c                    |                     dddgddt          j                  }|                     |d|           |                     dddgddt          j        d          }|                     |d|d	           |                     ddgddt          j        
          }|j        j        d         D ]}|                     ||         ||            d S )Nr6   r3   r4   r5   T)r?   r@   rA   r   r[   Totals)r?   r@   rA   r   r[   margins_name)r  r@   rA   r   r[   r   )r   r9   rK   r  rA   r   )r<   r=   rb   rM   	value_cols        r   test_marginszTestPivotTable.test_marginsy  s   !!sCj#tRW " 
 
 	63--- !!*G! " 
 
 	63(CCC   *c4 ! 
 
 -a0 	B 	BIuY/DAAAA	B 	Br   c                     d |j         D             |_         t          j        t          d          5  |                    ddgdt
          j                   d d d            n# 1 swxY w Y   |                    d	                              ddgdt
          j                  }|j         D ]1}|j        d
|f         }|||                                         k    sJ 2t          j        t          d          5  |                    ddgdd           d d d            n# 1 swxY w Y   |                    d	                              ddgdd          }dD ]1}|j        d
|f         }|||                                         k    sJ 2d S )Nc                     g | ]}|d z  S )rU   r   )r   ks     r   
<listcomp>z.TestPivotTable.test_no_col.<locals>.<listcomp>  s    444!A444r   Could not convertrv  AABBT)r@   r   r[   CCr   r   r  rK   )DDEEFF)	rA   ry  rz  r{  r   r9   rK   r  r$  )r<   r=   rM   r  totalsitems         r   test_no_colzTestPivotTable.test_no_col  sQ    54t|444]9,?@@@ 	P 	PD$<rwOOO	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P		$	''33,bg 4 
 
  	4 	4IY{I56FT)_113333333]9,?@@@ 	O 	OD$<vNNN	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O		$	''33,f 4 
 
 ' 	/ 	/DY{D01FT$Z__.......	/ 	/s#   %A##A'*A':D!!D%(D%z*columns, aggfunc, values, expected_columns)      @r  皙@r  )       @r  皙@r  )r,   r   r+   r   r   r_   )r         rV   r   r2   )          r2   r2   r  ))r,   r.   )r,   r/   )r,   r   )r+   r.   )r+   r/   )r+   r   r{   c                    t          g dg dg dg dg dd          }|dk    rKt          j        t          d	          5  |                    |d
|           d d d            n# 1 swxY w Y   d|vr|                    d          }|                    d                              |d
|          }t          |t          ddg          |          }t          j        ||           d S )N	r+   r+   r+   r+   r+   r,   r,   r,   r,   	r.   r.   r.   r/   r/   r.   r.   r/   r/   	smalllarger  r  r  r  r  r  r  	r   rU   rU   r   r   r   rV   r   r   	rU   r   rV   rV   r   r   r   r   r   r3   r4   r5   r6   r7   r_   r  rv  T)rA   r   r[   r4   r   r5   r6   r7   r   )	r	   ry  rz  r{  r   r  r   rC   rD   )r<   rA   r[   r?   r   ra   rb   rO   s           r   %test_margin_with_only_columns_definedz4TestPivotTable.test_margin_with_only_columns_defined  s}   D TTTTTT
 
 
 100000 
 
& ey0CDDD O OwgNNNO O O O O O O O O O O O O O Og%%B%%11T7 2 
 
 V5#s+<+<FVWWW
fh/////s   A&&A*-A*c                 X   |                                 }t          j        t          |          dz                                t          |          d                              d          |g d<   t          t          ddgddg                    dgz   }t          j	        |d	
          }t          g dg dd|                              dd          }|d         |d         z   |d<   |                    dddgddt          j        d          }t          j        ||           d S )Nr   i8)r6   r7   r8   r,   r+   r.   r/   r  r   r{   )      r   r   -   )!   r   $   3   x   r0   r1   r   r5   r   r  r0   r1   r   r6   r3   r4   Tr   r?   r@   rA   r   r[   r\   )copyr9   r   rE   r   r`   r^   r   r   r|   r	   rename_axisr   r_   rC   rD   )r<   r=   ra   mi_valmirO   rb   s          r   test_margins_dtypez!TestPivotTable.test_margins_dtype  s:    YY[[ iB!44<<SWWaHHOOPTUU???guenuen==>>+N#F*==='''2F2F2FGGr
 
 

+c+
"
" 	 #6*Xg->>*F   
 
 	h/////r   c                 l   t          t          ddgddg                    dgz   }t          j        |d          }t	          g dg d	d
|                              dd          }|d         |d         z   |d<   |                    dddgddt          d          }t          j	        ||           d S )Nr,   r+   r.   r/   r  r   r{   )r   r   rU   r   rV   )rU   r   rU   rU   r   r  r   r5   r   r  r0   r1   r   r6   r3   r4   Tr   r  )
r^   r   r   r|   r	   r  r   rE   rC   rD   )r<   r=   r  r  rO   rb   s         r   test_margins_dtype_lenz%TestPivotTable.test_margins_dtype_len  s    guenuen==>>+N#F*===$__??r
 
 

+c+
"
" 	 #6*Xg->>!!* " 
 
 	h/////r   ro   ))r   rU   rf   rg   r#  )rf   r   c           	         t          |d         g d|d         g ddg di          }|                    d|          }t          g dgt          j        g d|          t	          dg          	          }t          j        ||           d S )
Nr   rm   r   r   )r   rV   r   )r?   rA   ))r   r   )rU   rU   )r   r   r{   rA   r@   )r	   r   r   r|   r   rC   rD   )r<   ro   df2rb   rO   s        r    test_pivot_table_multiindex_onlyz/TestPivotTable.test_pivot_table_multiindex_only  s     a)))T!WiiiiiiPQQT::YYK*+C+C+C4PPP,,
 
 
 	fh/////r   c                 D   t          ddd          }t          t          j                            d          t          j                            d          |d          }|                    ddgd	          }|j        j        d
                             |          sJ d S )Nz
2016-01-01r   zEurope/Amsterdam)r   r6  r   r4   r5   F)r@   r   r   )	r   r	   r9   r:   r;   r   r@   r   equals)r<   dtira   rb   s       r   test_pivot_table_retains_tzz*TestPivotTable.test_pivot_table_retains_tz#  s    q5GHHHRY__Q//biooa6H6HsSSTTsCj?? |"1%,,S1111111r   c                    t           j        t          t          ddgg dddgfdt	          d          D             dg                    }t          |          }|                    d	g d
dg          }|                    t                    }|                    dg ddg          }t          j
        ||d           d S )Nr+   r,   r   x1x2c                 4    g | ]}t          |          z   S r   )r   )r   r   rv   s     r   r  z=TestPivotTable.test_pivot_integer_columns.<locals>.<listcomp>4  s$    555aYq\\!555r   r  r   r   )r   r   r   rU   )r?   r@   rA   r   4)0132Fr  )r   rR  r^   r   r   r	   r   renamestrrC   rD   )r<   r=   ra   rM   r  rN   rv   s         @r   test_pivot_integer_columnsz)TestPivotTable.test_pivot_integer_columns+  s     Ht5555599555 
 
 t__ayyy1#FFiii$$???SERR
eV??????r   c                    t          g ddz  g ddz  dgdz  dgdz  z   dz  t          j                            d          d          }|                    d	d
ddg          }|                    g d          d	                                         }|                    d                              d                              dd          }t          j
        ||           d S )N)rf   rf   rf   rf   rg   rg   rg   rg   rU   )r   r   r   r   r   r   r   r   r+   r   r,      )rf   rg   rh   valuer  rf   rg   rh   r   re   r   all)r  how)r	   r9   r:   r;   r   rI   rK   rL   r   rC   rD   )r<   r=   rM   groupedrO   s        r   test_pivot_no_level_overlapz*TestPivotTable.test_pivot_no_level_overlap@  s     ===A---1gkUGaK/14,,	 
 
   c3Z HH,,//8==????3''//44;;;NN
eX.....r   c           
      z   d}t          j        dt          fdt          fdt          fdt          fdt          fdt          fdt          fg          }t          j        g d	dt          fdt          fg
          }t          j        ||
          }t           j                            dt          |          |          }|d         |         |d<   |d         |         |d<   t          t          ddd          t          ddd                    }|t           j                            dt          |          |                   }|j        |d<   |j        |d<   |j        |d<   t           j                            dd|          |d<   t!          |          }|                    dddgg dd          }	|	j        j        sJ d S )Ni'  r   SymbolYearMonthDayQuantityPrice)	)SP500ADBE)r  NVDA)r  ORCL)NDQ100AAPL)r  MSFT)r  GOOG)FTSEzDGE.L)r  zTSCO.L)r  zGSK.Lr   r   i  r   i  r     r   r   )r   r  r  rK   r@   rA   r[   )r9   r   rn  intr   arrayemptyr:   randintrE   r   r   yearry   r   	lognormalr	   r   rA   is_monotonic_increasing)
r<   nr   productsitemsiproductdrdatesra   pivoteds
             r   test_pivot_columns_lexsortedz+TestPivotTable.test_pivot_columns_lexsortedR  s   &!6"#S!% 

 

 8
 
 
 V$x&89
 
 
 %(((9$$QHq99!'*84g"8,X6hT1a(($tR*<*<==29$$QB334
fgye,,S#q99gu..E"///	 ! 
 
 666666r   c                     dgdgd}|                     ddg                              |                              d          }|                    dd|          }t	          j        ||           d S )Nr  r_   r6   r7   r3   r4   r  )rI   rJ   rL   r   rC   rD   )r<   r=   r   rO   rb   s        r   test_pivot_complex_aggfuncz)TestPivotTable.test_pivot_complex_aggfunc  sw    '((<<c
++//22::3??!!S!!DD
fh/////r   c                     |ddg                              ddgt          d          }|                                }t          |d d                   |d         k    sJ d S )Nr3   r4   T)r@   r[   r   r   )r   rE   tolistr_   )r<   r=   rb   result_lists       r   test_margins_no_values_no_colsz-TestPivotTable.test_margins_no_values_no_cols  sk    sCj!--*c4 . 
 
 mmoo;ss#$$B777777r   c                     |g d                              ddgdt          d          }|j                                        g dk    sJ d S )Nr   r3   r4   r5   Tr@   rA   r[   r   r   r   r   r         &@r   rE   r   r  r<   r=   rb   s      r   test_margins_no_values_two_rowsz.TestPivotTable.test_margins_no_values_two_rows  sb     ooo&22*c3 3 
 
 z  ""&@&@&@@@@@@@r   c                     |ddg                              ddt          d          }|j                                        g dk    sJ d S )Nr3   r4   Tr  )r         @r  r  r  s      r   &test_margins_no_values_one_row_one_colz5TestPivotTable.test_margins_no_values_one_row_one_col  s^     sCj!--sC . 
 
 z  ""&6&6&6666666r   c                     g d|d<   |g d                              ddgddgt          d          }|j                                        g d	k    sJ d S )
N)rf   rg   rh   rv   er   ghr   jr  r6   r3   r4   r5   r6   r3   r4   r5   Tr  r  r  r  s      r   'test_margins_no_values_two_row_two_colsz6TestPivotTable.test_margins_no_values_two_row_two_cols  sy     LKKS	***+77*sCj#t 8 
 
 z  ""&@&@&@@@@@@@r   margin_namer+   r.   i  Nrf   rg   c           	         d| d}t          j        t          |          5  t          |dddgdgd|	           d d d            n# 1 swxY w Y   t          j        t          |          5  t          |ddgddgd|	           d d d            n# 1 swxY w Y   t          j        t          |          5  t          |ddgdgd|	           d d d            d S # 1 swxY w Y   d S )
NzConflicting name "z3" in margins|margins_name argument must be a stringrv  r6   r3   r4   r5   T)r?   r@   rA   r   r  )ry  rz  
ValueErrorr   )r<   r&  r=   r|  s       r   -test_pivot_table_with_margins_set_margin_namez<TestPivotTable.test_pivot_table_with_margins_set_margin_name  s   5 5 5 5 	 ]:S111 		 		Cj(   		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 ]:S111 		 		ec
(   		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 ]:S111 		 		e(   		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		s5   AAA-BBB8CC!$C!c                    t          d                                d                                g dt          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          gd	                              d
          }t          t	          j        g dd                              dd          t          j        t          ddd          gd          d                                          }d
|j	        _
        d|j        _
        t          |t          d          ddt          j                  }t          j        ||           t          |dt          d          dt          j                  }t          j        ||j                   t          t	          j        dt          j        dddt          j        g                              dd          t          j        t          ddd          t          ddd          gd          d                                          }d
|j	        _
        d|j        _
        |r|d                             d          |d<   t          |t          d          ddt          j                  }t          j        ||           t          |dt          d          dt          j                  }t          j        ||j                   |                                }t          |t          dd
          ddt          j                  }t          j        ||           t          |dt          dd
          dt          j                  }t          j        ||j                   d}t+          j        t.          |          5  t          |t          dd          ddt          j                   d d d            n# 1 swxY w Y   t+          j        t.          |          5  t          |dt          dd          dt          j                   d d d            n# 1 swxY w Y   |                    d
          }t          |t          dd
           ddt          j                  }t          j        ||           t          |dt          dd
           dt          j                  }t          j        ||j                   d!}t+          j        t0          |          5  t          |t          dd           ddt          j                   d d d            n# 1 swxY w Y   t+          j        t0          |          5  t          |dt          dd           dt          j                   d d d            d S # 1 swxY w Y   d S )"NA A A A A A A B$Carl Mark Carl Carl Joe Joe Joe Carlr   r   rV   r   r   r   r   r   r,  r   r   rU   r  )BranchBuyerr  Dater0  )r   r  r   r   r   r   r  r3   r   zCarl Joe Markr   r/  r  r@   rA   r?   r[   r   r  r   6MSCarlr   r   z#'The grouper name foo is not found'rv  r+   )r   r   zThe level foo is not valid)r	   splitr   rP  r9   r   r   r    r   r@   rH   rA   r   r
   r_   rC   rD   rq   r   r`   r   ry  rz  r  r(  )r<   using_array_managerra   rO   rb   r|  s         r   test_pivot_timegrouperz%TestPivotTable.test_pivot_timegrouper  s   +1133?EEGG444T1a((T1a((T2q))T2q))T2q))T2q))T2q))T2q))		 
 
  )F

! 	$ H[[[00088A>>"HT2r$:$:#;#FFF#))++
 
 

 % 's###F
 
 
 	fh///%%%F
 
 
 	fhj111HaAr26233;;AqAA"$1%%xa';';<5   $))++
 
 
 % ' 	@'/66w??HVu%%%F
 
 
 	fh///'''F
 
 
 	fhj111 ^^u&111F
 
 
 	fh///F333F
 
 
 	fhj1113]83/// 	 	5e444!   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]83/// 	 	U666!   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 \\&!!uF333F
 
 
 	fh///f555F
 
 
 	fhj111*]:S111 	 	5666!   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]:S111 	 	U%888!   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   0.P**P.1P..R

RR.V

VV0.W++W/2W/c                    t          d                                d                                g dt          ddddd          t          dd	ddd
          t          ddddd          t          ddddd          t          ddddd          t          ddddd          t          ddddd          t          ddd
dd          gt          ddddd          t          ddddd
          t          dd	d
dd          t          ddddd          t          ddddd          t          dd	d
dd          t          ddddd          t          ddddd          gd          }t          |t	          dd          t	          dd          dt
          j                  }t          t          j        t
          j        dt
          j        t
          j        dt
          j        dd	t
          j        d	t
          j        t
          j        t
          j        t
          j        dt
          j        g          	                    dd          t          j        t          dd	d          t          ddd          t          ddd          t          ddd          gd          t          j        t          dd	d          t          ddd          t          ddd          t          ddd          gd                    }d|j        _        d|j        _        t          j        ||           t          |t	          dd          t	          dd          dt
          j                  }t          j        ||j                   t          dd	d          t          ddd          ft          ddd          t          dd	d          ft          ddd          t          ddd          ft          ddd          t          ddd          ft          ddd          t          ddd          ft          ddd          t          ddd          fg}t%          j        |ddg           }t          t          j        dt
          j        dt
          j        dt
          j        d	t
          j        d	t
          j        t
          j        dg          	                    dd          |d!d"g          }d#|j        _        t          |t	          dd          t	          dd          gd#gdt
          j                  }t          j        ||           t          |d#gt	          dd          t	          dd          gdt
          j                  }t          j        ||j                   d S )$Nr+  r,  r-  r,  r2   r   r  r   r   rV   r   r  rU   r  r  r   r  r      )r.  r/  r  r0  PayDayr   r0  r4  r:  r  r1  r   r   r  r   r   r{   r3   r4   r.  )r	   r5  r   r   r
   r9   r_   r   r   r   r    r   r@   rH   rA   rC   rD   rq   r   r|   )r<   ra   rb   rO   tuplesr   s         r   test_pivot_timegrouper_doublez,TestPivotTable.test_pivot_timegrouper_doublek  s   +1133?EEGG444T2q"a00T1aQ//T2q"a00T2q"a00T2q"a00T2q"a00T2q"a00T2q"a00	 T2q!Q//T2r2q11T1aQ//T2q"a00T2q"a00T1aQ//T2r2q11T2r2q11	 
 
8 s///(333F
 
 
 HFFFFFFFFFF! & gamm"T1b))T2r**T2r**T2r**	    $T1b))T2r**T2r**T2r**	   ='
 '
 '
P % (
fh///s111&111F
 
 
 	fhj111 dAr""HT2r$:$:;dB##XdAr%:%:;dB##XdB%;%;<dB##XdB%;%;<dB##XdB%;%;<dB##XdB%;%;<
 $VFH3EFFFHBFArvq"&!RVQPQR gamm#J
 
 
 !)000's2Q2Q2QRJF
 
 
 	fh///*#6222G(4S4S4STF
 
 
 	fhj11111r   c           	         g d}g d}t          g d||t          j        dd          ddgd	z  d
          }|d                             d           |d<   |d                             d           |d<   t	          j        g ddd          }t          ddg          }t          ddgd          }t          j        ||g          }t          dd	gddgddgg||          }t          |dgdgdg          }	t          j        |	|           t          g d          }t          g ddz            }t	          j        ddgdz  d d          }
t          j        |||
g          }t          t          j        g d!g d"g d#gd          ||          }t          |dgdgdd$gt          j        t          j        g%          }	t          j        |	|           d S )&N2011-07-19 07:00:002011-07-19 08:00:002011-07-19 09:00:00r?  r@  rA  2013-01-01 15:00:00rC  rC  2013-02-01 15:00:00rD  rD  rf   rf   rf   rg   rg   rg   r   r   r   r   rU   r   labelr.  r/  value1value2r.  c                 .    t          j        | d          S r3  r7  r8  s    r   r   z7TestPivotTable.test_pivot_datetime_tz.<locals>.<lambda>  r9  r   r/  c                 .    t          j        | d          S r;  r7  r8  s    r   r   z7TestPivotTable.test_pivot_datetime_tz.<locals>.<lambda>  r9  r   )r?  r@  rA  r4  )r6  rH   rH  rf   rg   rG  r   r   r   rV   r   r   )r_   r_   r_   r_   rK   rK   rK   rK   )rH  rH  rI  rI  rC  rD  r<  )r   r   r   rU   r   r   r   rU   )r   r   rU   r   r   r   rU   r   )rU   rV   r   rU   rU   rV   r   rU   rI  r1  )r	   r9   r   r@  r    r   r   r   r"   r   rC   rD   r   r_   rK   )r<   dates1dates2ra   exp_idxrB  rC  rD  rO   rb   exp_col3s              r   test_pivot_datetime_tzz%TestPivotTable.test_pivot_datetime_tz  sz   
 
 

 
 
 777)AW555a&1* 
 
 uIOO$N$NOO5	uIOO$N$NOO5	"QQQ
 
 

 (H-..#s'222((H)=>>q!fq!fq!f5WgVVVRw	8*UUU
fh///UUUVVAAAAEFF#"$9:Q>
 
 

 ((Hh)GHHH,,,,,,,,,
    
 
 
 'Gh'VRW%
 
 
 	fh/////r   c                    g d}g d}t          g d||t          j        dd          ddgd	z  d
          }|d                             d           |d<   |d                             d           |d<   t	          |d|d         j        j        d          }t          ddgd          }t          dd	gddgddgd|t          g dt          j        d                    }t          j
        ||           t	          ||d         j        j        |d         j        j        d          }t          dd	gddgddgdt          ddgt          j        d          t          g dt          j        d                    }t          j
        ||           t	          ||d         j        j        j        |d         j        j        |d         j        j        gd          }t          j        t          j        g dt          j                  t          j        ddgd	z  t          j                  gddg          }t          t          j        g dgd          t          dgt          j                  |          }t          j
        ||           t	          |t          j        g d          |d         j        j        |d         j        j        gd          }t          t          j        dd	dt          j        dt          j        gt          j        t          j        t          j        dt          j        dgg          d d!g|          }t          j
        ||           d S )"Nr>  rB  rE  r   r   r   r   rU   r   rF  r.  c                 *    t          j        |           S r   r7  r8  s    r   r   z6TestPivotTable.test_pivot_dtaccessor.<locals>.<lambda>L      bl1oo r   r/  c                 *    t          j        |           S r   r7  r8  s    r   r   z6TestPivotTable.test_pivot_dtaccessor.<locals>.<lambda>M  rS  r   rG  rH  r   rf   rg   r   r   r   rV   )r   r   r   r   rH   r   )r   r   r   r   r   r   r{   )r   r   r   r   rU   rV   r,  )XrV  rV  rV  YrW  rV  rW  )r	   r9   r   r@  r   r   rK  r   r   rC   rD   ry   r  r?   r   r"   r   r   )r<   rL  rM  ra   rb   rN  rO   rD  s           r   test_pivot_dtaccessorz$TestPivotTable.test_pivot_dtaccessor1  s   
 
 

 
 
 777)AW555a&1* 
 
 uIOO$=$=>>5	uIOO$=$=>>5	gr%y|'8
 
 
 c
111AAq6q!f--)))28%@@@
 
 

 	fh///bil("U),2CH
 
 
 AAq6q!f--AbhU;;;)))28%@@@
 
 

 	fh///U),#*Y\&5	(:;	
 
 
 (+++28<<<!Q!28444 %.
 
 
 H((()999bh///
 
 

 	fh///(999::Y\&5	(:;	
 
 
 HQ261bf-26ST/UV  *
 
 
 	fh/////r   r   r   io  c                 6   t          ddd          }t          t          j                            t          |                    |          }t          t          |          |j        j	        |j        j
                  }|j                            d          |_        t          j        |j        j
                  }|||k             }|j        j	        |_        ||                                         }t          j        ||d	           |j        |k    sJ d S )
N1/1/2000
12/31/2004r6   r   r   r   r   Fr  )r   r   r9   r:   r;   rE   r   r	   r@   r  	dayofyearrA   	droplevelasarrayr   rC   r   rH   )r<   r   rngrI  annualdoysubsetrb   s           r   
test_dailyzTestPivotTable.test_daily  s    \<<<BIOOCHH--S999bMM8J
 
 
  11!44j+,,C1H|(!!##
vv5AAAA{ar   r  c                    t          ddd          }t          t          j                            t          |                    |          }t          t          |          |j        j	        |j        j
                  }|j                            d          |_        |j        j
        }|||k             }|j        j	        |_        ||                                         }t          j        ||d	           |j        |k    sJ d S )
NrZ  r[  r   r   r   r   r   Fr  )r   r   r9   r:   r;   rE   r   r	   r@   r  ry   rA   r]  r   rC   r   rH   )r<   r   r_  rI  r`  ry   rb  rb   s           r   test_monthlyzTestPivotTable.test_monthly  s    \<<<BIOOCHH--S999Yr]]"(-XXX11!44EQJ|(!!##
vv5AAAA{ar   c                 V   ddd}t          |dgt          |                                          |          }t          |dg|                                |          }t          j        ||           d |D             }t          |dg||          }t          j        ||           d S )Nr_   rK   r  r3   )r@   r?   r[   c              3      K   | ]}|V  d S r   r   )r   r  s     r   	<genexpr>zGTestPivotTable.test_pivot_table_with_iterator_values.<locals>.<genexpr>  s"      22E%222222r   )r   r^   r  rC   rD   )r<   r=   aggspivot_values_listpivot_values_keysagg_values_genpivot_values_gens          r   %test_pivot_table_with_iterator_valuesz4TestPivotTable.test_pivot_table_with_iterator_values  s    (('d499;;&7&7
 
 
 (diikk4
 
 
 	/1BCCC22T222&nd
 
 
 	.0ABBBBBr   c                 `   d}t          g dg dg dd          }|                    ddd|t          j        t          g	          }t          d
d|gdd          }dddd|fdddd|fg}t          j        |g d          }t          |j        ||          }t          j
        ||           d S )NWeekly)baconcheeserq  rr  )r   r   g	@gffffff
@)r   r   rq   rq   )r  costr   r  r   T)r@   rA   r   r  r[   rq  rr  rn  rU  )rK   rs  r   )rK   rs  rq   rK   rs  )maxrs  r   )rt  rs  rq   rt  )NNr   r{   r   )r	   r   r9   rK   rt  r   r   r|   r?   rC   rD   )r<   r  costsrM   ixtupsro   rO   s           r   /test_pivot_table_margins_name_with_aggfunc_listz>TestPivotTable.test_pivot_table_margins_name_with_aggfunc_list  s    >>>,,,+++ 
 
 !!%WcN " 
 
 GX|4H6RRR!!V\*  FL)
 %d2E2E2EFFFU\TBBB
eX.....r   c                    |r8|j                             t          j                            d                     t          t          j        d          t          j        d          dz  t          j        d          dz  d          }t          g dg dg d	g          }t          g d
d          |_	        t          g d
d          |_
        |                    ddd|d          }t          j        ||           d S )N1GH#17035 (np.mean of ints is casted back to ints)r~  r   r   rU   ri   r   r   r   rV   r   r  r   r   r   r   r   r   rk   r   rl   rj   Tr   r   )node
add_markerry  markxfailr	   r9   r   r   r@   rA   r   rC   rD   r<   rB   r   ra   rO   rM   s         r   test_categorical_marginsz'TestPivotTable.test_categorical_margins  s    	L##!!N "     )A,,RYq\\Q%6RYq\\A=MNN
 
 ooo{{{KKKHII}}}3777 S999sCXtLL
eX.....r   c                    |r8|j                             t          j                            d                     t          t          j        d          t          j        d          dz  t          j        d          dz  d          }t          g dg dg d	g          }t          g d
d          |_	        t          g d
d          |_
        |j                            d          |_        |j                            d          |_        |                    ddd|d          }t          j        ||           d S )Nrz  r~  r   r   rU   ri   r{  r|  r}  r~  rk   r   rl   r]   rj   Tr  )r  r  ry  r  r  r	   r9   r   r   r@   rA   rk   r`   rl   r   rC   rD   r  s         r   !test_categorical_margins_categoryz0TestPivotTable.test_categorical_margins_category  s2    	L##!!N "    
 )A,,RYq\\Q%6RYq\\A=MNN
 
 ooo{{{KKKHII}}}3777 S999t{{:&&t{{:&&sCXtLL
eX.....r   c                     t          g dg dg dg dd          }t          |dd          }t          g d	g d
g ddt          g dd                    }t          j        ||           d S )N)rU   r   r   r   )r   r   rV   r   )r   r   r   r   )rV  rV  rW  rW  r$  r6   T)r@   r   )r   r   rV   )r   g      @r   )rU   rV   r   r   )rV  rW  r   r   r   )r	   r   r   rC   rD   r<   ra   rb   rO   s       r   test_margins_casted_to_floatz+TestPivotTable.test_margins_casted_to_float  s    !\\!\\!\\)))	 
 
 RsD999))///DD)))444
 
 
 	fh/////r   c                    t           j        dddt           j        g}t           j        ddt           j        dg}t          t          |ddg|          t          |ddg|          t	          dd          d          }|                    d	d
d|          }t          j        ddg|d
          }t          dt           j        gt           j        dgg|          }t          t          ddgddg|          d	          |_	        t          j        ||           |                    d
d|          }t          ddgg|t          dg                    }t          j        ||           d S )Nr   r   r3   r4   r   r   r   )InColValr  r  r  )r@   rA   r?   rB   )r   rH   r   r   )r=   rA   r   )rA   r?   rB   r   )r=   rA   r@   )r9   r   r	   r   r   r   r    CategoricalIndexr   r@   rC   rD   )	r<   rB   r   r   r   ra   rb   expected_colsrO   s	            r   test_pivot_with_categoricalz*TestPivotTable.test_pivot_with_categorical  s   vufeRV4vsC-!#5&/7SSS"3C:wOOOQ{{ 
 
 eh   
 
 +S#JeTTTC=263-"@-XXXUFOWUUU
 
 

 	fh/// ehOO*}E5'NN
 
 
 	fh/////r   c                    t          g dg dg dd          }|d                             d          |d<   |                    ddd|d	
          }t          j        g dg ddd          }t          ddgd          }t          j        ddgddgddggt          j                  }t          |||          }t          j
        ||           d S )N)r3   r4   r5   r5   r   r   )r  r  Vr  r]   r  r  count)r@   rA   r   r[   r   Fr   r   rH   rf   rg   r   r   r   rU   r   r   )r	   r`   r   r    r  r   r9   r   r   rC   rD   )r<   rB   ra   rb   r   r   expected_datarO   s           r   test_categorical_aggfuncz'TestPivotTable.test_categorical_aggfunc9  s   '''/C/C/C,,,WW
 
 d8??:..4tT(G   
 
 ,OOT
 
 
 !#s$7771a&1a&1a&!9JJJ9I
 
 
 	fh/////r   c                    t          g dg dg dd          }g d}|d                             d          j                            |          |d<   |                    ddd	|d
          }t          ddgd	d          }t          j        ||dd          }ddggddggdz  z   }t          |||          }|r|j        dg         }t          j
        ||           d S )N)r"  r     )Januaryr  r  )r,  r-  r,  )Salesr  r  )r  FebruaryMarchAprilMayJuneJulyAugust	SeptemberOctoberNovemberDecemberr  r]   r  r  r_   )r?   r@   rA   rB   r[   r,  r-  r   )rH   r   Fr  i@  r  r   r2   r   r  )r	   r`   r   set_categoriesr   r   r    r  r$  rC   rD   )	r<   rB   ra   monthsrb   r   r   r  rO   s	            r   %test_categorical_pivot_index_orderingz4TestPivotTable.test_categorical_pivot_index_orderingM  s>   (:::*** 
 

 
 
 k((448GGOO7   
 
 !$F'JJJ,vu7
 
 
 sAx"}49I
 
 
  	1|YK0H
fh/////r   c                 b   t          g dg dg dd          }|                    dddgt          j                  }t	          j        g dg dgddg	          }t          g d|dg
          }t          j        ||           |                    dddt          j                  }t          dt          j        t          j        gt          j        dt          j        gt          j        t          j        dggt          g dd          t          g dd          
          }t          j        ||           |                    ddt          j        g          }t	          j        dgdgg          }t          g dt          g dd          |
          }t          j        ||           d S )N)r   r   rV   )r5   r6   r7   )r   r   r   rW   rX   rZ   rY   rp   r{   r   r  r   r   rV   r   r_   )
r	   r   r9   r_   r   r"   rC   rD   NaNr   )r<   ra   rb   r   rO   s        r   test_pivot_table_not_seriesz*TestPivotTable.test_pivot_table_not_seriesy  s   
 			???IIIVVWWvv.>OO"III#?PVGWXXXYYYa&BBB
fh///ffbfUU 261bf"57JK			//////777
 
 
 	fh///frvhGG"UGfX#677YYYeIIIF.K.K.KUVWWW
fh/////r   c                     d}t          dg di          }t          |dgt          d|          }t          ddd|gd	d
          }t          |g           }t	          j        ||           d S )Nu   Δοκιμήr+   rm   T)r@   r[   r   r  r   rU   r   rn  rU  r   )r	   r   rE   r   rC   rD   )r<   greekframerM   r@   rO   s         r   test_pivot_margins_name_unicodez.TestPivotTable.test_pivot_margins_name_unicode  s    65))),--%#t%
 
 
 q!Q&hUCCC5"555
eX.....r   c                 >   t          g dg dt          d          d          }t          |ddd          }t          d	gd
dggddgddggd dg          }t          ddddddd|                              d          }t          j        ||           t          |ddddg          }t          ddgd	gd
dggg dg dg dgg d          }t          ddddddddddddd|                              d          }t          j        ||           d S ) Nr*   r-   r2   r   r3   r4   r_   r  r5   r.   r/   r   r   rl  r  r  )r,   r+   r   r  ))r5   r.   )r5   r/   r   rK   r   )r   r   r   r   rs  )NNr4         @r   r  g@))rK   r5   r.   )rK   r5   r/   )r_   r5   r.   )r_   r5   r/   )r	   r   r   r   r  rC   rD   )r<   r=   rb   r  rO   s        r   test_pivot_string_as_funcz(TestPivotTable.test_pivot_string_as_func  s         2YY7 
 
@ Tc5IIIEE5>*Aq6Aq62B4QT+
 
 
 #%b11SUAVAVWW
 
 
 +c

 	 	fh///TcE6?SSSFOcUUEN;<<|||<###
 
 

 .1$&?&?.1:K&L&L-/%;%;-.r%:%:	  
 
 
 +c

 	 	fh/////r   z
f, f_numpyrK   r  c                     |                     d          }t          |dd|          }t          |dd|          }t          j        ||           d S )Nr5   r   r3   r4   r  )r  r   rC   rD   )r<   r   f_numpyr=   rb   rO   s         r   test_pivot_string_func_vs_funcz-TestPivotTable.test_pivot_string_func_vs_func  s\     yyy%%Tc1EEEt3WMMM
fh/////r   c           	      8    G d dt           j                  }|                                5 }|                    t           d|           t	          t          j        d          t          j        d          dd          }d}t          j        t          |          5  t          j        t          d	          5  |                    d
ddd           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nc                         e Zd Zd fdZ xZS )STestPivotTable.test_pivot_number_of_levels_larger_than_int32.<locals>.MockUnstackerreturnNc                 T     t                      j        |i | t          d          )NDon't compute final result.)super__init__	Exception)r<   argskwargs	__class__s      r   r  z\TestPivotTable.test_pivot_number_of_levels_larger_than_int32.<locals>.MockUnstacker.__init__  s.      $1&111 =>>>r   )r  N)__name__
__module____qualname__r  __classcell__)r  s   @r   MockUnstackerr    s=        ? ? ? ? ? ? ? ? ? ?r   r  
_Unstackeri   r   )ind1ind2r  z$The following operation may generaterv  r  r  r  r  r1  )reshape_libr  contextsetattrr	   r9   r   rC   assert_produces_warningr   ry  rz  r  r   )r<   monkeypatchr  r   ra   r|  s         r   -test_pivot_number_of_levels_larger_than_int32z<TestPivotTable.test_pivot_number_of_levels_larger_than_int32  s   	? 	? 	? 	? 	?K2 	? 	? 	?   "" 	aIIk<???5))29U3C3CaPP B 9C+,>cJJJ  ]94QRRR  NN$fWg #                               	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sZ   A1DC7:C C7 C$$C7'C$(C7+D7C;	;D>C;	?DDDc                    t          g dg dg dd          }d }d }d }t          |d|||g|	          }d
dt          j        t          j        ddgddt          j        t          j        ddgg}t	          j        g dddggd dg          }t          |ddg|          }	|r|	                    d          }	t          j        ||	           d S )N)applepeachr  )r   r   rU   )r   r   r   )fruitsizetastec                     dS )Nr   r   r   s    r   ret_onez?TestPivotTable.test_pivot_table_aggfunc_dropna.<locals>.ret_one  s    1r   c                      t          |           S r   )r_   r   s    r   ret_sumz?TestPivotTable.test_pivot_table_aggfunc_dropna.<locals>.ret_sum  s    q66Mr   c                     t           j        S r   )r9   r   r   s    r   ret_nonez@TestPivotTable.test_pivot_table_aggfunc_dropna.<locals>.ret_none  s	    6Mr   r  rA   r[   r   r   r   r  r   )r  r  r  r  r  r{   r  r  r   rA   r  )	r	   r   r9   r   r   from_productr   rC   rD   )
r<   r   ra   r  r  r  rb   r=   r   rO   s
             r   test_pivot_table_aggfunc_dropnaz.TestPivotTable.test_pivot_table_aggfunc_dropna  s3   444!		" 
 
	 	 		 	 		 	 	 '8W)Ef
 
 
 Arvrvq!,r1bfbfa.KL%///'71CD/
 
 
 T&'):CHHH 	7I66H
fh/////r   c                    t          g ddt          j        dgdt          j        t          j        gd          }t          |dt          j        |          }dt          j        gdt          j        gg}t          d	d
gd          }t          |ddg|          }|r|                    d          }t          j        ||           d S )N)r.   r/   r.   r   rU   r   )r3   rj   rk   r3   r  r   r.   r/   r   rj   rk   r   rA   r  )	r	   r9   r   r   rK   r   r   rC   rD   )r<   r   ra   rb   r=   r   rO   s          r   &test_pivot_table_aggfunc_scalar_dropnaz5TestPivotTable.test_pivot_table_aggfunc_scalar_dropna+  s    '''q"&!nArvrvCVWW
 
 RbgfMMMbf26{+UEN---T#sSAAA 	7I66H
fh/////r   r   c                    t          g dg dg dg dd          }|                    dddt          j        |	          }t	          g d
          }t          t	          g dd          |          }t          j        ||           d S )N)rU   rU   r   r   rU   )rV   r   r   r   r   )prg  rg  r  rg  )NNNNN)r3   idr5   r6   r3   r6   r  r   r   r   rU  r   )r	   r   r9   r  r   rC   rD   )r<   r   ra   rb   exp_colsrO   s         r   test_pivot_table_empty_aggfuncz-TestPivotTable.test_pivot_table_empty_aggfunc<  s     $__%oo...333	 
 
 s4'   
 
 #&&&57#E#E#ExXXX
fh/////r   c                     d }t          g dg dg dd          }t          j        t          d          5  |                    ddd	|
           d d d            d S # 1 swxY w Y   d S )Nc                 *    t          j        |           S r   )r9   rK   )arrs    r   rJ   z=TestPivotTable.test_pivot_table_no_column_raises.<locals>.aggP  s    73<<r   r   rs  )r   r  r9  (   )rV  rW  Z
notpresentrv  rV  rW  )r[   )r	   ry  rz  r  r   )r<   rJ   ra   s      r   !test_pivot_table_no_column_raisesz0TestPivotTable.test_pivot_table_no_column_raisesN  s    	  	  	  \\\CSCSCSTTUU]8<888 	@ 	@NN<c3N???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   AA#&A#c           	      H   t          g dg dg dg dg dd          }t          |ddgd	d
gt          j        t          t
          t          j        gd          }t          j        g d          }t          j        g dd	d
g          }t          j        g dg dg dg dg          }t          |||          }|d         	                    t          j
                  |d<   |d         	                    t          j
                  |d<   t          j        ||           d S )Nr  r  r  r  r  r  r6   r7   r3   r5   r  )r?   r@   r[   ))r6   rK   r7   rt  )r7   rK   r7   rR  ))r,   r  )r,   r  )r+   r  )r+   r  r{   )r        "@g      @      @)r  r  g      !@r  )r   r  r   r   )g["8@r  g.UUU@r   r  r  r  )r	   r   r9   rK   rR  rt  r   r|   r   r`   r   rC   rD   )r<   ra   rM   ro   r@   valsrO   s          r   0test_pivot_table_multiindex_columns_doctest_casez?TestPivotTable.test_pivot_table_multiindex_columns_doctest_caseW  s~    TTTTTT
 
 
 100000 
 
( :*'c27(;<<	
 
 
 %FFF
 
 &TTT*
 
 
 x$$$$$$$$$222	
 
 T4u===!),!7!>!>rx!H!H!),!7!>!>rx!H!H
eX.....r   c           	      l   t          g dg dg dg dd          }|                    ddgdd	d
d          }t          dt          j        gdt          j        gt          j        dggt	          ddgd          t          j        g dg dgddg                    }t          j        ||           d S )N)d1d4d3re   )   r  "   )2018r  2019)rf   r   numr  rf   r   r  r  r_   F)r@   rA   r?   r[   sortr  r  r  r  r  r   r{   r  )	r	   r   r9   r   r   r   r"   rC   rD   r  s       r   test_pivot_table_sort_falsez*TestPivotTable.test_pivot_table_sort_false  s    '''&#||000	 
 
 ,ueRW   
 
 "&\B<"&"666*888(###___5c5\  
 
 
 	fh/////r   c           	      8   t          dddgt          ddgd          d          }|                    d	d
dd          }t          ddgddgddggt          g dd	          t	          j        ddgd d
g          d          }t          j        ||           d S )Nr3   r   rU   r   r2   Int64r   )rf   rg   salesrg   rf   Tr_   r  r  r^  r   r  r3   r  r   r{   r@   rA   r   )r	   r   r   r   r   r|   rC   rD   r  s       r   !test_pivot_table_nullable_marginsz0TestPivotTable.test_pivot_table_nullable_margins  s    QFVRHG-L-L-LMM
 
 c3eTT"XBx"b*C000*!124+   
 
 
 	fh/////r   c           	         t          ddgddgddgddgd	          }|                    d
dgddgd          }t          ddgddggddgt          j        ddgd
dg                    }t	          j        ||           d S )NJohnMichaelFooBar      /   r  )	firstnamelastnameheightager  r  r  r  F)r@   r?   r  )r
  r  )r  r	  r{   r  )r	   r   r   r|   rC   rD   r  s       r   0test_pivot_table_sort_false_with_multiple_valuesz?TestPivotTable.test_pivot_table_sort_false_with_multiple_values  s    $i0"EN*Bx	 
 
 {+Xu4EE   
 
 2Yb	"u%( "45!;/  
 
 
 	fh/////r   c                 2   t          g dg dg dg dg          }g d|_        |                    dddd	d
d          }t          g dg dg dg          }g d|_        g d|_        d|j        _        d|j        _        t          j        ||           d S )N)rf   rj   r   )rf   rk   rU   )rg   rk   r   )rg   rl   r   )r   r  r9  r   r  r9  r_   r   T)r@   rA   r?   r[   r\   r   )r   rU   r   r   )r   r   r   r   )r   rV   r   r   )rj   rk   rl   r   )rf   rg   r   )r	   rA   r   r@   rH   rC   rD   r  s       r   1test_pivot_table_with_margins_and_numeric_columnsz@TestPivotTable.test_pivot_table_with_margins_and_numeric_columns  s    }}}mmm]]]STT!\\
bUqRV   
 
 lllLLL---HII111*** " 
fh/////r   r   c                    t          ddt          ddgd          d          }|                    dd	d
d|          }t          dggt          dgd          t          dgd	          d          }t	          j        ||           d S )Nrf   rg   r  r  r  r   )rj   rk   r  rj   rk   r  rK   )r@   rA   r?   r[   r   r9  r   Float64r  )r	   r   r   r   rC   rD   r   s        r   test_pivot_ea_dtype_dropnaz)TestPivotTable.test_pivot_ea_dtype_dropna  s     Ss62r('3R3R3RSSTTs5&   
 
 TFC(((3%c***	
 
 
 	fh/////r   c                 :   t          dddgt          j        d          ddgd          }t          j        d           5  |                    dd	gd
dd          }d d d            n# 1 swxY w Y   t          ddgddgddggt          j        t          g dd          t          t          j        d          t          j        d          dgt          d	          g          t          j
        ddgd d
g                    }t          j        ||           d S )Nr3   r   rU   z
2019-12-31g      $@r2   )rf   rg   r   r  rg   r   rf   Tr_   r  r  g      5@r^  r   r  rU  r  r  r{   r   )r	   r    r   rC   r  r   r   r"   r   rn  r|   rD   r  s       r   !test_pivot_table_datetime_warningz0TestPivotTable.test_pivot_table_datetime_warning  s   V\22	 
 
 '-- 	 	^^FmS$ $  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 D\D$<$6(---c222l33R\,5O5OQST$#  	 	 *!124+  
 
 
  	fh/////s   A''A+.A+c                    t          g dg dg dg dg dg dg dg dd          }t          |ddd	gd
gt          j                  }t          ddgddgddgt          j        dggt          ddgd
          t          j        g dddgdz  gdd	g                    }|r|d                             d          |d<   t          j
        ||           d S )Nr  r  r  r  r  )r3   r4   r5   r6   r7   )col5)col6r   r   sevenr6   r3   r4   r  r
  r   r  r  r  r   r  r  r   )r,   r,   r+   r+   r.   r/   rU   r{   r  r   )r	   r   r9   r_   r   r   r   r"   r`   rC   rD   )r<   r6  ra   rb   rO   s        r   )test_pivot_table_with_mixed_nested_tuplesz8TestPivotTable.test_pivot_table_with_mixed_nested_tuples	  se   TTTTTT
 
 
 100000
 
 

 
 

 
 
M1 13
 3
h s3*|nbf
 
 
 3Z#sc3Z"&#?7G,<@@@(---u~/AB3PS*  
 
 
  	B ( 1 8 8 A AHW
fh/////r   )ar  r  r  ry  fixturer=   rP   rc   rt   r   r   r   r   r   r   r   r   r   r   r   r  parametrizer   r  r  r  r   r*  rE  rT  rZ  r_  r9   r   r   r   rq  rt  r}  r  r  r  r  r  r  rK   r   r|   r  r  r  r  r  r  r  r  r  r  r  r  r%  r)  r7  r<  rP  rX  r   rc  re  rn  rx  r  r  r  r  r  r  r  r  r  r_   r  r  slowr  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   r(   r(   )   s	       ^.
 .
 ^.
`/ / /80 0 06
& 
& 
&#/ #/ #/J0 0 00 0 080 0 040 0 080 0 01 1 140 0 0
0 0 0
/ / /!1 !1 !1F [x*+33343334	
 " " "(( (( ((T0 0 00 0 02 [Xe}55X X 65X6 [Xe}55, , 65,6 [Xe}559, 9, 659,v50 50 50n [Xe}55+, +, 65+,Z0 0 00 [ENBHeU^$$FE5>""E5%.!!		
  [Xe}550 0 65 04 [ENBHeU^$$FE5>""E5%.!!		
  [Xe}550 0 65 0B2 2 2 [S    [Xe}55$0 $0 65 $0L [Xe}55P P 65P, Cj= = = =2B B B2/ / /. [4 %%%';';';<222===	 c
))),,, '
&   *
 
 
	
 <!0 !0= <!0F0 0 000 0 0& [V%M%M%MNN0 0 ON02 2 2@ @ @*/ / /$17 17 17f0 0 08 8 8A A A7 7 7A A A []UE3sCj,QRR# # SR#JV V Vp}2 }2 }2~E0 E0 E0NW0 W0 W0r [S%%3--00    10 $ [S%%2,,//    0/ C C C&/ / /</ / /&/ / /(0 0 0$!0 !0 !0F0 0 0(*0 *0 *0X0 0 08	/ 	/ 	/<0 <0 <0| [BFORWBFOV_rvrw/0U^bfbf-.V_rvrw/0	

 
0 0
 
0 [  ,!0 !0 !0F0 0 0" [Yu660 0 760"@ @ @2/ 2/ 2/h0 0 0,0 0 0"0 0 0,0 0 0" [Xe}550 0 6500 0 0@C0 C0 C0 C0 C0r   r(   c                   P    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )	TestPivotc                    g dg dg dd}t          |          }|                    ddd          }t          dd	d
ddd	d
dd          }d\  |j        _        |j        _        t          j        ||           |j        j        dk    sJ |j        j        dk    sJ |                    dd          }|j        j        dk    sJ |j        j        dk    sJ d S )Nr3   r4   r5   r5   r4   r3   Oner)  r)  Twor*  r*  r   r   r   r   r   r   r   r@   rA   r?   r   r   r   r   r)  r*  r   NrA   )r	   r  r@   rH   rA   rC   rD   rF   )r<   r=   r  r  rO   s        r   
test_pivotzTestPivot.test_pivotO	  s#   333AAA444
 
 $++GYx+PP s55 s55 
 
 6H2X-2
gx000 }!W,,,,#y0000 ++GY+??}!W,,,,$(9999999r   c                     t          g dg dg dd          }t          j        t          d          5  |                    ddd	
           d d d            d S # 1 swxY w Y   d S )N)r,   r,   r+   r+   r+   )r.   r/   r.   r.   r/   )r   r   r   r   r   re   zduplicate entriesrv  rf   rg   rh   r   )r	   ry  rz  r(  r  )r<   r=   s     r   test_pivot_duplicateszTestPivot.test_pivot_duplicatesl	  s    888888... 
 
 ]:-@AAA 	; 	;JJS#cJ:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   AA"Ac                     t          g d          }|                    ddd          }t          g g           }t          j        ||d	           d S )
Nre   r   rf   rg   rh   r   r   Fr  )r	   r  rC   rD   r  s       r   test_pivot_emptyzTestPivot.test_pivot_emptyw	  s]    ///S==2r222
fhEBBBBBBr   c                     t          ddg          }|                    ddd          }t          |           t          j        |j        t          dd	gd
                     d S )N)r3   r  A1)r4   r  B2r  r   r   rU   r   r3   r4   r   )r	   r  reprrC   r}   rA   r   )r<   ra   rb   s      r   test_pivot_integer_bugz TestPivot.test_pivot_integer_bug}	  sg    -/?@AAA1Q77V
fneS#JQ.G.G.GHHHHHr   c                    g dg dg dd}t          |                              d          }|                    dd          }t          d	d
ddd	d
ddd          }d\  |j        _        |j        _        t          j        ||           |                    d          }t          j	        ddgd dg          |_        d|j        _        t          j        ||d           |j        j        dk    sJ |j        j
        dk    sJ |j                            d          |_        |                    dd          }d|j        _        t          j        ||           d S )Nr'  r(  r+  r   r@   rA   r?   rA   r?   r   r   r   r   r,  r   r   )r?   r)  )r?   r*  r{   Fr  r-  r   )r	   rP  r  r@   rH   rA   rC   rD   r   r|   rF   r]  )r<   r=   r  rb   rO   s        r   test_pivot_index_nonezTestPivot.test_pivot_index_none	  s    433AAA444
 
 $))'22Yx@@ s55 s55 
 
 6H2X-2
fh/// Y//%1 124:K
 
 
 &
fhEBBBB| G++++~#'88888#+55a88Yx@@ )
fh/////r   c                    t          g dg dg dg dg dd          }ddg}d	g}|                    ||
          }t          t          j        g ddt          j        dt          j        gg dt          j        dt          j        dgg          t          j        ddgddg          t          j        ddgd d	g          
          }t          j        ||           |ddgk    sJ |d	gk    sJ d S )N)r   r   r   rU   rU   rU   )r   r   rU   r   r   rU   )r   rU   r   rU   r   rU   re  r  )lev1lev2lev3lev4r?   r<  r=  r>  r   )r   r   r   r   r   r   )r  r   r   r   r  r  r   )r   rU   r   rU   r{   )r?  r?  r?   r?   )	r	   r  r9   r   r   r   r"   rC   rD   )r<   ra   r@   rA   rb   rO   s         r   0test_pivot_index_list_values_none_immutable_argsz:TestPivot.test_pivot_index_list_values_none_immutable_args	  sZ   ************,,, 
 
  (w77H((("&#rv.(((VS"&#.	  (|,VV4D   *5|DVn  
 
 
$ 	fh///(((((6(""""""r   c                     t          dgdd          }t          j        t          d          5  |                                 d d d            d S # 1 swxY w Y   d S )Nr   r  z(missing 1 required keyword-only argumentrv  rx  )r<   ra   s     r   test_pivot_columns_not_givenz&TestPivot.test_pivot_columns_not_given	  s    aSq))**]9,VWWW 	 	HHJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                    t          dgddd          }|                    d           }t          dgdd          }t          j        ||           |                    d d          }t          d	dit	          dgd
                    }t          j        ||           |                    d dd          }t          ddit	          dgd
                    }t          j        ||           d S )Nr   rU   r   Nrg   rh   r   ))rg   r   rh   r   rg   r  rE  r   r   rh   rA   r@   r?   )r	   r  rC   rD   r   r  s       r   test_pivot_columns_is_nonez$TestPivot.test_pivot_columns_is_none	  s    qc2233$''q99::
fh///$c22h]%#2F2F2FGGG
fh///$c#>>aV5!3+?+?+?@@@
fh/////r   c                 j   t          dgddd          }|                    dd           }t          ddidg          }d dg|j        _        t	          j        ||           |                    dd d	
          }t          ddgt          dgd                    }t	          j        ||           d S )Nr   rU   r   rD  rg   r  )rh   rU   r   rh   rF  r   r   )r	   r  rA   rF   rC   rD   r   r  s       r   test_pivot_index_is_nonez"TestPivot.test_pivot_index_is_none	  s    qc2233#T22h]1#666"&
fh///#T#>>Qqc5!33G3G3GHHH
fh/////r   c                    t          dgddd          }|                    ddd           }t          dt          dgd          t          dgd          	          }t          j        ||           |                    dd 
          }t          ddgt          dgd          	          }t          j        ||           d S )Nr   rU   r   rD  rg   rh   rF  r   r   r9  r   )r	   r  r   rC   rD   r  s       r   test_pivot_values_is_nonez#TestPivot.test_pivot_values_is_none	  s    qc2233#S>>UA3S)))5!33G3G3G
 
 
 	fh///#d33Qqc5!33G3G3GHHH
fh/////r   c                     t          dgddd          }|                    d          }|                    ddd	
           t          j        ||           d S )Nrf   r   r   )r.   r/   threeT)deepr.   r/   rM  r   )r	   r  r  rC   rD   )r<   ra   rO   s      r   "test_pivot_not_changing_index_namez,TestPivot.test_pivot_not_changing_index_name	  s_    uQ;;<<777%%
ueG<<<
b(+++++r   N)r  r  r  r.  r0  r2  r7  r:  r@  rB  rG  rI  rK  rO  r   r   r   r%  r%  N	  s        : : ::	; 	; 	;C C CI I I"0 "0 "0H$# $# $#L  0 0 00 0 00 0 0, , , , ,r   r%  )%r   r   r   	itertoolsr   numpyr9   ry  pandas.errorsr   pandasr    r   r	   r
   r   r   r   r   r   pandas._testing_testingrC   pandas.api.typesr   r   pandas.core.reshaper   r  pandas.core.reshape.pivotr   r!  r   r   r&   r(   r%  r   r   r   <module>rY     s'           
            , , , , , ,    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	       4 4 4 4 4 4 6 6 6 6 6 6 1 1 1 1 1 1 e}%%%  &% !q1#'*UU1a[[%%1++,FGHHHJ J IHJ
b$0 b$0 b$0 b$0 b$0 b$0 b$0 b$0JIu, u, u, u, u, u, u, u, u, u,r   