ó
šxŠ\c           @   s)  d  d l  m Z d  d l m Z m Z m Z d  d l Z d  d l Z d  d l m	 Z	 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 m Z d  d l j j Z e j d e  e! g ƒ d	 „  ƒ Z" d
 e# f d „  ƒ  YZ$ d e# f d „  ƒ  YZ% d S(   iÿÿÿÿ(   t   OrderedDict(   t   datet   datetimet	   timedeltaN(   t   productt   range(   t   Categoricalt	   DataFramet   Groupert   Indext
   MultiIndext   Seriest   concatt
   date_range(   t   CategoricalDtype(   t   crosstabt   pivot_tablet   paramsc         C   s   |  j  S(   N(   t   param(   t   request(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   dropna   s    t   TestPivotTablec        
   B   s‹  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z e j j d d d d g f d d d d g f d d d d g f g ƒ d „  ƒ Z d „  Z d „  Z d „  Z e j j d e e g ƒ d „  ƒ Z e j j d e e g ƒ d „  ƒ Z e j j d e e g ƒ d „  ƒ Z e j j d d d g e j d d g ƒ e j d d g ƒ e j d d g ƒ g ƒ e j j d e e g ƒ d „  ƒ ƒ Z e j j d d d g e j d d g ƒ e j d d g ƒ e j d d g ƒ g ƒ e j j d e e g ƒ d „  ƒ ƒ Z e j j  d d ƒ e j j d e e g ƒ d  „  ƒ ƒ Z! e j j d e e g ƒ d! „  ƒ Z" d" „  Z# d# „  Z$ e j j  d d$ ƒ d% „  ƒ Z% d& „  Z& d' „  Z' d( „  Z( d) „  Z) d* „  Z* d+ „  Z+ d, „  Z, d- „  Z- e j j d. d/ d0 d1 dJ d2 d3 g g ƒ d4 „  ƒ Z/ d5 „  Z0 d6 „  Z1 d7 „  Z2 d8 „  Z3 d9 „  Z4 d: „  Z5 d; „  Z6 e j j  d d< ƒ d= „  ƒ Z7 e j j  d d< ƒ d> „  ƒ Z8 d? „  Z9 d@ „  Z: dA „  Z; dB „  Z< dC „  Z= e j j dD dE e j> f dF e j? f dG e j@ f dE dF g e j> e j? g f dE dG g e j> e j@ g f dG dF g e j@ e j? g f g ƒ dH „  ƒ ZA e j jB dI „  ƒ ZC RS(K   c         C   sÄ   t  i d d d d d d d d d d d g d 6d d d d d d d d d d d g d 6d d d d d d d d d d d g d	 6t j j d
 ƒ d 6t j j d
 ƒ d 6t j j d
 ƒ d 6ƒ |  _ d  S(   Nt   foot   bart   At   onet   twot   Bt   dullt   shinyt   Ci   t   Dt   Et   F(   R   t   npt   randomt   randnt   data(   t   selft   method(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   setup_method   s    c         C   sX  d d g } d } t  |  j d d d | d | ƒ} |  j j  d d d | d | ƒ } t j | | ƒ t  |  j d d d | ƒt | ƒ d k r° | j j t | ƒ k sÌ t ‚ n | j j	 | d	 k sÌ t ‚ t | ƒ d k rù | j
 j | k st ‚ n | j
 j	 | d	 k st ‚ |  j j | | g ƒ d j t j ƒ j ƒ  } t j | | ƒ d  S(
   NR   R   R   t   valuesR   t   indext   columnsi   i    (   R   R%   t   tmt   assert_frame_equalt   lenR*   t   namest   tuplet   AssertionErrort   nameR+   t   groupbyt   aggR"   t   meant   unstack(   R&   R*   R+   t   tablet   table2t   expected(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_table)   s"    !	&c         C   sÚ   t  i d d d g d 6d d d g d 6d	 d
 d g d 6ƒ } | j d d d t j ƒ } | j d d d t j ƒ j } t j | | ƒ | j d d d i d d 6ƒ } | j d d d i d d 6ƒ j } t j | | ƒ d  S(   Nt   at   bt   ct   rowst   xt   yt   zt   colsi   i   i   R)   R+   t   aggfuncR*   R5   (   R   R   R"   t   sumt   TR,   R-   (   R&   t   dft   rst   xp(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_table_nocolsD   s    "c         C   sf  t  i i d d 6d d 6d d 6d d 6d	 6i d
 d 6d
 d 6d d 6d d 6d 6i d d 6d d 6d d 6d d 6d 6i d d 6d d 6d d 6d d 6d 6i d d 6d d 6d d 6d d 6d 6ƒ } | j d d d d g d t ƒ} | j d d d g d d t ƒ} t j d d d  d! d" d# d$ d% d& d' d( d) g d d d g ƒ} t j | j | ƒ t j | j | ƒ d  S(*   Ni`ê  i    i † i   iPÃ  i   i0u  i   t   amountR   R   R   t   customeri[ i] i\ i^ t   monthR;   R<   R=   t   dR   i€„ i ¡ i@B t   quantityR   R/   (   R   R;   (   R   R<   (   R   R=   (   R   RM   (   R   R;   (   R   R<   (   R   R=   (   R   RM   (   R   R;   (   R   R<   (   R   R=   (   R   RM   (	   R   R   t   FalseR
   t   from_tuplesR,   t   assert_index_equalR+   R*   (   R&   RF   t   pv_colt   pv_indt   m(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_table_dropnaP   s"    )###		c         C   s  t  d d d d g d d d d g d t ƒ} t  d d d d g d d d d g d t ƒ} t i | d	 6| d
 6d d d d g d 6ƒ } t j | d d d d	 d
 g d t ƒ} t j j | | g d d	 d
 g ƒ} t i d d d d g d 6d | ƒ} t j | | ƒ d  S(   NR;   R<   t
   categoriesRA   t   orderedR=   RM   R@   R   R   i   i   i   i   R)   R*   R   R/   (	   R   t   TrueR   t   pdR   R
   t   from_arraysR,   R-   (   R&   t   cat1t   cat2RF   t   resultt	   exp_indexR9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_table_categoricald   s    -			c         C   s„  d d d d g } t  i d d d d d d d d d g	 d 6d d d d d d d d d g	 d	 6t d
 d ƒ d 6ƒ } | d j t | d t ƒƒ | d <| j d d	 d d d d d | ƒ } t d d d g d d ƒ} | j t | d t ƒƒ } t d d d g d d	 ƒ} t  d
 d d g d d d g d d d g g d | d | ƒ} | sp| j d t | ƒ ƒ j d ƒ } n  t	 j
 | | ƒ d  S(   NR;   R<   R=   RM   R   i   i   i   R   i    i	   R   RW   R*   R+   R)   R   R2   i   i   i   i   i   t   float(   R   R   t   astypet   CDTRO   R   R   t   reindexR   R,   R-   (   R&   R   RV   RF   R]   t   expected_columnst   expected_indexR9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt$   test_pivot_table_dropna_categoricalsv   s(    ("#			c      
   C   s³  t  j i t  j t j d d d d g d d d g d t ƒd 6t d ƒ d 6ƒ } | j d d d	 d d
 | ƒ } t  j i d d g d 6d t  j t  j j	 d d g d d d g d t ƒd d ƒƒ} t
 j | | ƒ t  j i t  j d d d d d g d d d d g d t ƒd 6t d ƒ d 6ƒ } | j d d d	 d d
 | ƒ } t  j i d d d g d 6d t  j t  j j	 d d d g d d d d g d t ƒd d ƒƒ} t
 j | | ƒ d  S(   Nt   lowt   highRV   RW   R   i   R   R*   R)   R   i   i   i    i   R2   t   left(   RY   R   R   R"   t   nanRX   R   R   R	   t
   from_codesR,   R-   (   R&   R   RF   R]   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt%   test_pivot_with_non_observable_dropna‘   s8    !
	
	c         C   s\   |  j  j d d |  j  j d |  j  j ƒ} |  j  j d d d d d ƒ} t j | | ƒ d  S(   NR   R*   R+   R   R   (   R%   R   R   R   R,   R-   (   R&   R]   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pass_array¶   s    	!c         C   sc   |  j  j d d d „  d |  j  j ƒ} |  j  j d d |  j  j d d d ƒ} t j | | ƒ d  S(   NR   R*   c         S   s   |  d S(   Ni   (    (   R?   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   <lambda>½   s    R+   i   R   (   R%   R   R   R*   R,   R-   (   R&   R]   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pass_function¼   s
    	c         C   sl   d d g } d } t  |  j d | d | ƒ} |  j j | | g ƒ j t j ƒ j ƒ  } t j | | ƒ d  S(   NR   R   R   R*   R+   (	   R   R%   R3   R4   R"   R5   R6   R,   R-   (   R&   R*   R+   R7   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_table_multipleÃ   s
    +c         C   sˆ  t  i d d d d g d 6d d d d g d 6d d	 d d	 g d
 6ƒ } | j d d k s^ t ‚ t | d d d d g d d
 g d d d t j ƒ} | j ƒ  } t t d d ƒ ƒ } t	 j
 | | ƒ t  i d d d d g d 6d d d d g d 6d d	 d d	 g d
 6ƒ } | j d d k s t ‚ t | d d d d g d d
 g d d d t j ƒ} | j ƒ  } t t d d ƒ ƒ } t	 j
 | | ƒ d  S(   Nt   catt   batR;   i   i   i   i   t   vR<   t   it   int64R)   R*   R+   t
   fill_valuei    RC   g      ø?g      @g      @g      @t   float64(   R   t   dtypesR1   R   R"   RD   t   get_dtype_countsR   t   dictR,   t   assert_series_equalR5   (   R&   t   fRA   R]   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_dtypesÊ   s     ,,s   columns,valuest   bool1t   float1t   float2t   bool2c         C   s©   t  j d d t  j ƒ} t i | d 6| d d 6| d k d 6| d k d	 6ƒ } | j ƒ  j d
 d
 d | d | ƒ } t | j ƒ } d „  | Dƒ } | | k s¥ t ‚ d  S(   Ni   t   dtypeR   g       @R€   i   R~   i   R   R*   R+   R)   c         S   sD   i  |  ]: } | d  j  d ƒ r. t j d ƒ n t j d ƒ | “ q S(   i    R<   t   ORw   (   t
   startswithR"   R‚   (   t   .0t   col(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pys
   <dictcomp>ð   s   	(	   R"   t   arangeRw   R   t   reset_indexR   Rz   Rx   R1   (   R&   R+   R)   Rs   RF   t   df_resR]   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_preserve_dtypesâ   s     
c      	   C   s   t  j d d d d d g ƒ } t  j i d d d d d g d	 6d
 | ƒ} | j d
 | j j d | j j ƒ } t  j j d d g ƒ } t  j d d g d t	 j
 g g d
 d d g d | ƒ} t j | | ƒ t  j i d d d d d g d	 6t  j d d d d d ƒd 6d
 | ƒ} | j d
 | j j d t  j d d d d ƒ ƒ } t  j j d	 t  j d ƒ f g ƒ } d  d g | _ t  j d d g d
 d d g d | ƒ} t j | | ƒ | j d
 t  j d d	 ƒ d t  j d d d d ƒ ƒ } t  j d g d
 t  j d g ƒ d | ƒ} t j | | ƒ d  S(   Ns
   2011-01-01s
   2011-02-01s
   2011-01-02i   i   i   i   i   R   R*   R+   g      @g      @g       @t   freqR   t   periodst   dtt   keyt   Ms
   2011-01-31g      
@s
   2011-12-31(   R   i   (   R   i   (   RY   t   DatetimeIndexR   R   R*   RL   t   dayR
   RP   R"   Rj   R,   R-   R   R   t	   Timestampt   NoneR/   (   R&   t   idxRF   t   rest   exp_columnst   exp(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_no_valuesô   s6    "	$!		c      
   C   s€   t  |  j d d d g d d d d d g d	 d
 ƒ} t  |  j j d g d d ƒd d d d d g d	 d
 ƒ} t j | | ƒ d  S(   NR)   R   R    R*   R   R+   R   R   Rv   i    R!   t   axisi   (   R   R%   t   dropR,   R-   (   R&   R]   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_multi_values  s
    c            sö   ‡  f d †  } | t  j t  j g ƒ } | t  j ƒ } | t  j ƒ } t | | g d d d g d d ƒ} t j | | ƒ ‡  f d †  } | t  j t  j g ƒ } | t  j ƒ } | t  j ƒ } t | | g d d d g d d ƒ} t j | | ƒ d  S(   Nc      
      s1   t  ˆ  j d d d g d d d g d d d	 |  ƒS(
   NR)   R   R    R*   R   R   R+   R   RC   (   R   R%   (   t   func(   R&   (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyRn     s   t   keysR5   t   stdR™   i   c            s7   t  ˆ  j d d d g d d d g d d d	 |  d
 t ƒS(   NR)   R   R    R*   R   R   R+   R   RC   t   margins(   R   R%   RX   (   Rœ   (   R&   (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyRn   '  s   (   R"   R5   Rž   R   R,   R-   (   R&   R|   R]   t   meanst   stdsR9   (    (   R&   s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_multi_functions  s    $$R'   c   	   
   C   s³  t  j } t i d d | d g d 6d d d d g d	 6d
 d d d g d 6ƒ } | rl | j d d	 d ƒ } n t j | d d	 d ƒ } t | | d | g d
 | | | g | d | | g | | | d g g d t | d d d g d d ƒd t d d d d g d d	 ƒƒ} t j | | ƒ t j | j d	 d d ƒ | j ƒ t i t j	 d d d d d ƒd 6d t  j
 d ƒ d 6ƒ } | d t j d ƒ | d	 <| | j d <| j d <| | j d <| j d <| rß| j d d	 d ƒ } n t j | d d	 d ƒ } | j ƒ  j j ƒ  t | ƒ k st ‚ xE | j ƒ  D]7 \ } } | j | d | d	 f | d k s+t ‚ q+W| r„| j d	 d d ƒ } n t j | d	 d d ƒ } t j | | j ƒ d  S(    Nt   R1t   R2t   R4R;   t   C1t   C2t   C3t   C4R<   i
   i   i   i   R=   R*   R2   R+   s
   2014-02-01RŒ   i   R‹   R   id   s
   2014-02-02i   i   i   (   i   R;   (   i   R;   (   i   R<   (   i   R<   (   R"   Rj   R   t   pivotRY   R	   R,   R-   RE   R   R‡   R’   t   loct   notnaR)   RD   R.   R1   t   iterrows(	   R&   R'   Rj   RF   R]   R9   t   pvt   _t   row(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_index_with_nan0  s8    	!$!""'/c         C   sÐ  t  i 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 6t 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 6t j d	 d
 d ƒd 6t j d	 d
 d ƒd 6ƒ } | d j d „  ƒ | d <| d j d „  ƒ | d <t d d d d g ƒ } t j d d g d d d d d ƒ} t j j	 | | g ƒ } t  d d d d g d d d d g g d t j d d g d d d d ƒd | ƒ} | ré| j
 d d d d ƒ } n t j
 | d d d d ƒ} t j | | ƒ t  d d g d d g g d t j d d g d d d d ƒd t j d d g d d d d ƒƒ} | r›| j
 d d d d d d ƒ } n! t j
 | d d d d d d ƒ} t j | | ƒ d  S(   NiÝ  i   i	   i    i   t   dt1iÞ  t   dt2i   R‚   Ru   t   data1t   data2c         S   s   t  j |  d d ƒS(   Nt   tzs
   US/Pacific(   RY   R’   (   RM   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyRn   f  s    c         S   s   t  j |  d d ƒS(   NR¶   s
   Asia/Tokyo(   RY   R’   (   RM   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyRn   g  s    s   2014/01/01 09:00s   2014/01/02 09:00R2   R¶   s
   Asia/Tokyoi   R*   s   2013/01/01 09:00s   2013/01/02 09:00s
   US/PacificR+   R)   (   R   R   R"   R‡   t   applyR	   RY   R   R
   RZ   Rª   R,   R-   (   R&   R'   RF   t   exp_col1t   exp_col2t   exp_colR9   R®   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_with_tzX  sP    	'									!!c         C   sl  t  i t j d d ƒ t j d d ƒ t j d d ƒ t j d d ƒ g d 6t j d d ƒ t j d d ƒ t j d d ƒ t j d d ƒ g d 6t j d	 d
 d ƒd 6t j d	 d
 d ƒd 6ƒ } t d d d d g ƒ } t j d d g d d d d d ƒ} t j j | | g ƒ } t  d d d d g d d d d g g d t j d d g d d d d ƒd | ƒ} | r…| j	 d d d d ƒ } n t j	 | d d d d ƒ} t
 j | | ƒ t  d d g d d g g d t j d d g d d d d ƒd t j d d g d d d d ƒƒ} | r7| j	 d d d d d d ƒ } n! t j	 | d d d d d d ƒ} t
 j | | ƒ d  S(   Ns
   2013-01-01R   s
   2013-01-02t   p1s   2013-01R   s   2013-02t   p2i   R‚   Ru   R´   Rµ   i   R2   R‹   i    i   i   R*   R+   R)   (   R   RY   t   PeriodR"   R‡   R	   t   PeriodIndexR
   RZ   Rª   R,   R-   (   R&   R'   RF   R¸   R¹   Rº   R9   R®   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_periods‹  s>    '	!!R)   t   bazt   zooc   	      C   s›  t  j i d d d d d d g d 6d d d d d d g d 6d d	 d
 d d d g d 6d d d d d d g d 6ƒ } | rš | j d d d d d | ƒ } n! t  j | d d d d d | ƒ} d d	 d
 d d d g d d d d d d g g } t d d d g d d ƒ } t d d d g d d d g g d d d d d d d g d d d	 d d d	 g g d d  d g ƒ } t d | d | d | d d  ƒ } t j | | ƒ d  S(!   NR   R   R   R   R   R   R   i   i   i   i   i   i   RÁ   R?   R@   RA   t   qt   wt   tRÂ   R*   R+   R)   R%   R2   t   levelst   codesi    R/   R‚   t   object(   RY   R   Rª   R	   R
   R“   R,   R-   (	   R&   R)   R'   RF   R]   R%   R*   R+   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt    test_pivot_with_list_like_values±  s     "!!!0R   c   	   	   C   sì  t  j i d d d d d d g d 6d d d d d d g d 6d d	 d
 d d d g d 6d d d d d d g d 6ƒ } | rš | j d d d d d | ƒ } n! t  j | d d d 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 d d d d d d d g d d ƒ } t d d d g d d g g d d d d d g d d d d g g d d  d g ƒ } t d | d | d | d d  ƒ } t j	 | | ƒ d  S(!   NR   R   R   R   R   R   R   i   i   i   i   i   i   RÁ   R?   R@   RA   RÃ   RÄ   RÅ   RÂ   R*   R+   R)   R%   R2   RÆ   RÇ   i    R/   R‚   RÈ   (
   RY   R   Rª   R"   Rj   R	   R
   R“   R,   R-   (	   R&   R)   R'   RF   R]   R%   R*   R+   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt%   test_pivot_with_list_like_values_nansÌ  s(    "!!'$t   reasonsA   MultiIndexed unstack with tuple names failswith KeyError GH#19966c      	   C   s²  t  d d d d d d d g ƒ } d d	 d d
 g d d d d g d d d d g d d	 d d g d d d d g d d d d g g } t d d d g d d g g d d d d d g d d d d g g ƒ } t d | d | d | d d ƒ } | r| j d d d d  d d! ƒ } n! t j | d d" d d# d d$ ƒ} i t d d g d d d g ƒd	 6t d d g d d d g ƒd 6t d d g d d d g ƒd 6} t | ƒ } t j | | ƒ d  S(%   NR%   i    i   i   i   i   i   R   R   R?   R   R@   R   RA   R   RÃ   RÄ   i   RÅ   RÆ   R   RÁ   t   firstt   secondRÇ   R*   R+   R‚   RÈ   R)   (   R   RÌ   (   R   RÍ   (   RÁ   RÌ   (   R   RÌ   (   R   RÍ   (   RÁ   RÌ   (   R	   R
   R   Rª   RY   R   R,   R-   (   R&   R'   R*   R%   R+   RF   R]   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_with_multiindexë  s.    !'!	""c         C   s×   t  j i d d d d d d g d 6d d d d d d g d 6d d	 d
 d d d g d 6d d d d d d g d 6ƒ } t j t d d ƒI | r® | j d d d d d d ƒ n t  j | d d d d d d ƒWd  QXd  S(   NR   R   R   R   R   R   R   i   i   i   i   i   i   RÁ   R?   R@   RA   RÃ   RÄ   RÅ   RÂ   t   matchs   ^\('bar', 'baz'\)$R*   R+   R)   (   R   RÁ   (   R   RÁ   (   RY   R   t   pytestt   raisest   KeyErrorRª   (   R&   R'   RF   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_with_tuple_of_values
  s    "c   	         s^  d d g d g d ‡  f d † } ˆ  j  j d d d d d g d	 d d
 t d t j ƒ } | | d ƒ ˆ  j  j d d d d d g d	 d d
 t d t j d d ƒ } | | d d d ƒˆ  j  j d d d g d	 d d
 t d t j ƒ } x) | j j d D] } | | | | ƒ qô Wg  ˆ  j  j D] } | d ^ qˆ  j  _ ˆ  j  j d d d g d
 t d t j ƒ } xC | j D]8 } | j d | f } | ˆ  j  | j ƒ  k slt ‚ qlWˆ  j  j d	 d d g d
 t d t j ƒ } t	 | t
 ƒ sçt ‚ ˆ  j  j d d d g d
 t d d ƒ } xI d d d g D]8 } | j d | f } | ˆ  j  | j ƒ  k st ‚ qWd  S(   NR   R   R   t   Allc            s  |  j  |  j d  | f } ˆ  j j | ƒ | j ƒ  } t j | | d t ƒ| j | k sa t	 ‚ |  j
 ƒ  }  |  j  | d f j d  } ˆ  j j | ƒ | j ƒ  } t j | | d t ƒ| j | d f k sÔ t	 ‚ |  j  | d f | f }	 ˆ  j | j ƒ  }
 |	 |
 k st	 ‚ d  S(   Niÿÿÿÿt   check_namest    (   R«   R*   R%   R3   R5   R,   R{   RO   R2   R1   t
   sort_indext   iloc(   R]   t
   values_colR*   R+   t   margins_colt   col_marginst   expected_col_marginst   index_marginst   expected_ix_marginst   grand_total_marginst   expected_total_margins(   R&   (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   _check_output  s    R)   R   R*   R+   RŸ   RC   t   margins_namet   TotalsRÚ   i    i   t   AAt   BBRÖ   R5   t   DDt   EEt   FF(   RÔ   RÖ   (   RÔ   RÖ   (   R%   R   RX   R"   R5   R+   RÆ   R«   R1   t
   isinstanceR   (	   R&   Rá   R]   R7   t	   value_colt   kt   totalst   rtablet   item(    (   R&   s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_margins  s<    		)#	c         C   s4  |  j  j ƒ  } t j t | ƒ d ƒ j t | ƒ d ƒ | d d d g <t t d d g d d g ƒ ƒ d" g } t j	 | d d# ƒ} t
 i d d d d d g d 6d d d d d g d 6d | ƒj d d d ƒ} | d | d | d	 <| j d d d d d g d d d t d  t j d! d ƒ } t j | | ƒ d  S($   Ni   R   R    R!   R   R   R   R   RÔ   RÖ   R/   R   R   i   i   i	   i-   R   i!   i    i$   i3   ix   R   R*   R   R™   i   R)   R+   RŸ   RC   Rv   (   RÔ   RÖ   (   R   R   (   R%   t   copyR"   R‡   R.   t   reshapet   listR   R
   RP   R   t   rename_axisR   RX   RD   R,   R-   (   R&   RF   t   mi_valt   miR9   R]   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_margins_dtypeV  s    8(s1   GH#17035 (len of floats is casted back to floats)c         C   sí   t  t d d g d d g ƒ ƒ d g } t j | d d ƒ} t i d
 d
 d d
 d g d 6d d d d d g d 6d | ƒj d d d
 ƒ} | d | d | d <|  j j d d d d d	 g d d d t d t	 d d ƒ } t
 j | | ƒ d  S(   NR   R   R   R   RÔ   RÖ   R/   R   R   i   i   i   R   i    i   R   R*   R   R™   R)   R   R+   RŸ   RC   Rv   (   RÔ   RÖ   (   R   R   (   Rò   R   R
   RP   R   Ró   R%   R   RX   R.   R,   R-   (   R&   Rô   Rõ   R9   R]   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_margins_dtype_leni  s    (c      
   C   sî   t  j } t t d d g d d d g d d g g  t d ƒ D] } | t | ƒ ^ q: d	 g ƒ ƒ } t | ƒ } | j d
 d d d d d g d d g ƒ } | j d t	 ƒ } | j d
 d d d d d g d d g ƒ } t
 j | | d t ƒd  S(   NR   R   R   R   R   t   x1t   x2i   g      ð?R)   i   R*   i    i   i   R+   i   t   4t   0t   1t   3t   2RÕ   (   R   t   minRò   R   R   R   R   R   t   renamet   strR,   R-   RO   (   R&   RM   Rt   R%   RF   R7   t   df2R8   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_integer_columnsy  s    	$2*	!c      
   C   s  t  i d d d d d d d d g d d 6d d d d d d d d g d d 6d g d d g d d d	 6t j j d
 ƒ d 6ƒ } | j d d d d d d	 g ƒ} | j d d d	 g ƒ d j ƒ  } | j d ƒ j d	 ƒ j d d d d ƒ } t	 j
 | | ƒ d  S(   NR;   R<   i   i    i   R   i   R   R=   i   t   valueR*   R+   R™   t   howt   all(   R   R"   R#   R$   R   R3   R5   R6   R   R,   R-   (   R&   R%   R7   t   groupedR9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_no_level_overlap‰  s    )#!"*c   
      C   sÎ  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 d" d# d$ d% d& d' d( d) d* g	 d d t f d t f g ƒ} t  j | d | ƒ} t  j j d t	 | ƒ | ƒ } | d | | d <| d | | d <t
 j t d d d ƒ t d d d ƒ ƒ } | t  j j d t	 | ƒ | ƒ } | j | d <| j | d <| j | d <t  j j d d | ƒ | d <t | ƒ } | j d d d d g d d d d g d  d! ƒ}	 |	 j j sÊt ‚ d  S(+   Ni'  R	   t   Symbolt   Yeart   Montht   Dayt   Quantityt   Pricet   SP500t   ADBEt   NVDAt   ORCLt   NDQ100t   AAPLt   MSFTt   GOOGt   FTSEs   DGE.Ls   TSCO.Ls   GSK.LR‚   i    iÐ  i   iÚ  i   i   g      @g       @R*   R+   RC   R5   (   R  R  (   R  R  (   R  R  (   R  R  (   R  R  (   R  R  (   R  s   DGE.L(   R  s   TSCO.L(   R  s   GSK.L(   R"   R‚   RÈ   t   intR`   t   arrayt   emptyR#   t   randintR.   RY   R   R   t   yearRL   R‘   t	   lognormalR   R   R+   t   is_monotonicR1   (
   R&   t   nR‚   t   productst   itemst   iproductt   drt   datesRF   t   pivoted(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_columns_lexsorted—  sH    							"	c         C   sƒ   t  d d g f d d g f g ƒ } |  j j d d g ƒ j | ƒ j d ƒ } |  j j d d d d d	 | ƒ } t j | | ƒ d  S(
   NR   Rž   R    RD   R   R   R*   R+   RC   (   R    R%   R3   R4   R6   R   R,   R-   (   R&   R|   R9   R]   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_complex_aggfuncÄ  s    $*!c         C   sa   |  j  d d g j d d d g d t d t ƒ } | j ƒ  } t | d  ƒ | d k s] t ‚ d  S(   NR   R   R*   RC   RŸ   iÿÿÿÿ(   R%   R   R.   RX   t   tolistRD   R1   (   R&   R]   t   result_list(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_margins_no_values_no_colsË  s    c      	   C   sh   |  j  d d d g j d d d g d d d t d t ƒ } | j j ƒ  d d	 d
 d d g k sd t ‚ d  S(   NR   R   R   R*   R+   RC   RŸ   g      @g      ð?g      @g      &@(   R%   R   R.   RX   RÔ   R(  R1   (   R&   R]   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_margins_no_values_two_rowsÒ  s    !c      	   C   sY   |  j  d d g j d d d d d t d t ƒ } | j j ƒ  d d d	 g k sU t ‚ d  S(
   NR   R   R*   R+   RC   RŸ   g      @g      @g      &@(   R%   R   R.   RX   RÔ   R(  R1   (   R&   R]   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt&   test_margins_no_values_one_row_one_colÙ  s    c         C   sŸ   d d d d d d d d d	 d
 d g |  j  d <|  j  d d d d g j d d d g d d d g d t d t ƒ } | j j ƒ  d d d d d g k s› t ‚ d  S(   NR;   R<   R=   RM   t   eR|   t   gt   hRt   t   jRë   R   R   R   R   R*   R+   RC   RŸ   g      @g      ð?g      @g      &@(   R%   R   R.   RX   RÔ   R(  R1   (   R&   R]   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt'   test_margins_no_values_two_row_two_colsà  s
    "'t   margin_nameR   R   iš  R;   R<   c         C   s   d j  | ƒ } t j t d | ƒ9 t |  j d d d d d g d d	 g d
 t d | ƒWd  QXt j t d | ƒ9 t |  j d d d d	 g d d d g d
 t d | ƒWd  QXt j t d | ƒ6 t |  j d d d d g d d g d
 t d | ƒWd  QXd  S(   NsG   Conflicting name "{}" in margins|margins_name argument must be a stringRÏ   R)   R   R*   R   R   R+   R   RŸ   Râ   (   t   formatRÐ   RÑ   t
   ValueErrorR   R%   RX   (   R&   R2  t   msg(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt-   test_pivot_table_with_margins_set_margin_nameé  s    	c         C   s¼
  t  i d j ƒ  d 6d j ƒ  d 6d d d d d d d	 d g d
 6t 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 6ƒ j d ƒ } t  t j d d d g d d ƒj d d ƒ d t d d d ƒ g d d j ƒ  ƒ} d | j _ d | j	 _ t
 | d t d d ƒ d d d d
 d t j ƒ} t j | | ƒ t
 | d d d t d d ƒ d d
 d t j ƒ} t j | | j ƒ t  t j d t j d d	 d t j g ƒ j d d ƒ d t d d d ƒ t d d d ƒ g d d j ƒ  ƒ} d | j _ d | j	 _ t
 | d t d d ƒ d d d d
 d t j ƒ} t j | | ƒ t
 | d d d t d d ƒ d d
 d t j ƒ} t j | | j ƒ | j ƒ  } t
 | d t d d d d ƒ d d d d
 d t j ƒ} t j | | ƒ t
 | d d d t d d d d ƒ d d
 d t j ƒ} t j | | j ƒ d } t j t d | ƒ9 t
 | d t d d d d  ƒ d d d d
 d t j ƒWd  QXt j t d | ƒ9 t
 | d d d t d d d d  ƒ d d
 d t j ƒWd  QX| j d ƒ } t
 | d t d d d! d ƒ d d d d
 d t j ƒ} t j | | ƒ t
 | d d d t d d d! d ƒ d d
 d t j ƒ} t j | | j ƒ d" } t j t d | ƒ9 t
 | d t d d d! d  ƒ d d d d
 d t j ƒWd  QXt j t d | ƒ9 t
 | d d d t d d d! d  ƒ d d
 d t j ƒWd  QXt  i d j ƒ  d 6d j ƒ  d 6d d d d d d d	 d g d
 6t 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 6t 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+ 6ƒ } t
 | d t d d, d d ƒ d t d d, d d+ ƒ 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 ƒ j d( d( ƒ d t d d	 d* ƒ t d d d ƒ t d d# d* ƒ t d d d ƒ g d t d d	 d* ƒ t d d d ƒ t d d# d* ƒ t d d d ƒ g ƒ} d | j _ d+ | j	 _ t j | | ƒ t
 | d t d d, d d+ ƒ d t d d, d d ƒ 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 d+ g ƒ} t  t j d t j d- t j d t j d	 t j d	 t j t j d g ƒ j d- d ƒ d | d d d/ g ƒ} d | j	 _ t
 | d t d d, d d ƒ t d d, d d+ ƒ g d d g d d
 d t j ƒ} t j | | ƒ t
 | d d g d t d d, d d ƒ t d d, d d+ ƒ g d d
 d t j ƒ} t j | | j ƒ d  S(0   Ns   A A A A A A A Bt   Branchs$   Carl Mark Carl Carl Joe Joe Joe Carlt   Buyeri   i   i   i   i	   R  iÝ  i
   i   i   t   Datei   R‚   Ru   R*   i   R+   s   Carl Joe MarkR‹   R   R)   RC   i   t   6MSRŽ   s#   'The grouper name foo is not found'RÏ   R   t   levels   The level foo is not validi   i   i    i   i   i   i   i   t   PayDayR   i   R/   R   (   R   t   splitR   t	   set_indexR"   R  Rñ   R*   R2   R+   R   R   RD   R,   R-   RE   Rj   Rˆ   RÐ   RÑ   RÒ   R4  R
   RP   (   R&   RF   R9   R]   R5  t   tuplesR”   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_timegrouperÿ  s   %!**"$!'$!c         C   sÐ  d d d d d d g } d d d d d d g } t  i d d d d d d g d 6| d	 6| d
 6t j d d d ƒd 6d d g d d 6ƒ } | d	 j d „  ƒ | d	 <| d
 j d „  ƒ | d
 <t j d d d g d d d d	 ƒ} t d d g ƒ } t d d g d d ƒ} t j | | g ƒ } t  d d g d d g d d g g d | d | ƒ} t	 | d d	 g d d g d d g ƒ}	 t
 j |	 | ƒ t d d d d d d d d g ƒ } t d d d d g d ƒ } t j d d g d d d  d d
 ƒ}
 t j | | |
 g ƒ } t  t j d d d d d d d d g d d d d d d d d g d d d d d d d d g g d d ƒd | d | ƒ} t	 | d d	 g d d
 g d d d g d! t j t j g ƒ}	 t
 j |	 | ƒ d  S("   Ns   2011-07-19 07:00:00s   2011-07-19 08:00:00s   2011-07-19 09:00:00s   2013-01-01 15:00:00s   2013-02-01 15:00:00R;   R<   t   labelR²   R³   i   R‚   Ru   t   value1i   i   i   t   value2c         S   s   t  j |  d d ƒS(   NR¶   s
   US/Pacific(   RY   R’   (   RM   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyRn   ®  s    c         S   s   t  j |  d d ƒS(   NR¶   s
   Asia/Tokyo(   RY   R’   (   RM   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyRn   ¯  s    R¶   s
   US/PacificR2   i    i   i   R*   R+   R)   RD   R5   s
   Asia/TokyoRC   (   R   R"   R‡   R·   RY   R   R	   R
   RZ   R   R,   R-   R  RD   R5   (   R&   t   dates1t   dates2RF   t   exp_idxR¸   R¹   Rº   R9   R]   t   exp_col3(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_datetime_tz¡  sV    				$	$!		c      
   C   s¥  d d d d d d g } d d d d d d g } t  i d d d d d d g d 6| d	 6| d
 6t j d d d ƒd 6d d g d d 6ƒ } | d	 j d „  ƒ | d	 <| d
 j d „  ƒ | d
 <t | d d d | d	 j j d d ƒ} t d d g d d ƒ} t  i d d g d 6d d g d 6d d g d 6d | d t d d d g d d	 ƒƒ} t j	 | | ƒ t | d | d
 j j
 d | d	 j j d d ƒ} t  i d d g d 6d d g d 6d d g d 6d t d d g d d
 ƒd t d d d g d d	 ƒƒ} t j	 | | ƒ t | d | d
 j j j d | d	 j j | d
 j j
 g d d ƒ} t j d d d d d d g d d g d g d d	 d
 g ƒ} t  t j d d d d d d g g d d ƒd d  g d | ƒ} t j	 | | ƒ t | d t j d! d! d! d! d" d" g ƒ d | d	 j j | d
 j j
 g d 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! d" g d | ƒ} t j	 | | ƒ d  S(#   Ns   2011-07-19 07:00:00s   2011-07-19 08:00:00s   2011-07-19 09:00:00s   2013-01-01 15:00:00s   2013-02-01 15:00:00R;   R<   RA  R²   R³   i   R‚   Ru   RB  i   i   i   RC  c         S   s   t  j |  ƒ S(   N(   RY   R’   (   RM   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyRn   ß  s    c         S   s   t  j |  ƒ S(   N(   RY   R’   (   RM   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyRn   à  s    R*   R+   R)   R2   i    i   i   i   i   i	   R/   iÝ  t   Xt   Y(   R   R"   R‡   R·   R   R   t   hourR	   R,   R-   RL   R  R)   R
   RZ   R  Rj   (   R&   RD  RE  RF   R]   RF  R9   Rº   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_dtaccessorÑ  sZ    			0	0 	7- 	$c         C   s  t  d d d d ƒ} t t j j t | ƒ ƒ d | ƒ} t t | ƒ d | j j	 d | j j
 ƒ} | j j d ƒ | _ t j | j j
 ƒ } xq t d d	 ƒ D]` } | | | k } | j j	 | _ | | j ƒ  } t j | | d
 t ƒ| j | k s t ‚ q Wd  S(   Ns   1/1/2000s
   12/31/2004R‹   R   R*   R+   i    i   io  RÕ   (   R   R   R"   R#   R$   R.   R   R   R*   R  t	   dayofyearR+   t	   droplevelt   asarrayR   R   R,   R{   RO   R2   R1   (   R&   t   rngt   tst   annualt   doyRt   t   subsetR]   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt
   test_daily  s    $c         C   sÿ   t  d d d d ƒ} t t j j t | ƒ ƒ d | ƒ} t t j | ƒ d | j	 j
 d | j	 j ƒ} | j j d ƒ | _ | j	 j } xq t d d	 ƒ D]` } | | | k } | j	 j
 | _	 | | j ƒ  } t j | | d
 t ƒ| j | k s— t ‚ q— Wd  S(   Ns   1/1/2000s
   12/31/2004R‹   R   R*   R+   i    i   i   RÕ   (   R   R   R"   R#   R$   R.   R   RY   R   R*   R  RL   R+   RN  R   R   R,   R{   RO   R2   R1   (   R&   RP  RQ  RR  RL   Rt   RT  R]   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_monthly  s    $c         C   sÕ   i d d 6d d 6} t  j |  j d d g d t | j ƒ  ƒ d | ƒ} t  j |  j d d g d | j ƒ  d | ƒ} t j | | ƒ d	 „  | j ƒ  Dƒ } t  j |  j d d g d | d | ƒ} t j | | ƒ d  S(
   NRD   R   R5   R    R*   R   R)   RC   c         s   s   |  ] } | Vq d  S(   N(    (   R…   R  (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pys	   <genexpr>7  s    (   RY   R   R%   Rò   R   R,   R-   (   R&   t   aggst   pivot_values_listt   pivot_values_keyst   agg_values_gent   pivot_values_gen(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt%   test_pivot_table_with_iterator_values*  s    -'!c         C   s"  d } t  j i d d d d g d 6d d d d g d	 6d
 d
 d d g d 6ƒ } | j d d d d d t d | d t j t g ƒ } t  j d d | g d d d d ƒ} d d d d	 | f d d d d	 | f g } t  j j	 | d d  d  d g ƒ} t  j | j d | d | ƒ} t j | | ƒ d  S(   Nt   Weeklyt   bacont   cheeseRî   g      @g      @gš™™™™™	@gffffff
@t   costR   RE   R‘   R*   R+   RŸ   Râ   RC   R‚   RÈ   R2   R5   t   maxR/   (   R5   R`  R   (   R5   R`  RE   (   Ra  R`  R   (   Ra  R`  RE   (   RY   R   R   RX   R"   R5   Ra  R	   R
   RP   R“   R)   R,   R-   (   R&   Râ   t   costsR7   t   ixt   tupsRB   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt/   test_pivot_table_margins_name_with_aggfunc_list=  s     	!s1   GH#17035 (np.mean of ints is casted back to ints)c         C   së   t  j i t j d ƒ d 6t j d ƒ d d 6t j d ƒ d d 6ƒ } t  j d d d	 g d
 d d g d d d g g ƒ } t d d d g d d ƒ| _ t d d d g d d ƒ| _ | j d d d d | d t ƒ} t	 j
 | | ƒ d  S(   Ni   R?   i   R@   i   RA   g      ð?g       @g      ø?i   i   g      @i   g      @i    i   RÔ   R2   R   RŸ   (   RY   R   R"   R‡   R	   R*   R+   R   RX   R,   R-   (   R&   t   observedRF   R9   R7   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_categorical_marginsS  s    3!c         C   s  t  j i t j d ƒ d 6t j d ƒ d d 6t j d ƒ d d 6ƒ } t  j d d d	 g d
 d d g d d d g g ƒ } t d d d g d d ƒ| _ t d d d g d d ƒ| _ | j j d ƒ | _ | j	 j d ƒ | _	 | j
 d d d d | d t ƒ} t j | | ƒ d  S(   Ni   R?   i   R@   i   RA   g      ð?g       @g      ø?i   i   g      @i   g      @i    i   RÔ   R2   t   categoryR   RŸ   (   RY   R   R"   R‡   R	   R*   R+   R@   Ra   RA   R   RX   R,   R-   (   R&   Rf  RF   R9   R7   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt!   test_categorical_margins_categoryb  s    3!c      
   C   s6  t  j i d d d d g d 6d d d d g d 6d d	 d
 d g d 6ƒ } | d j d ƒ | d <| j d d d d d d | d d ƒ} t  j d d d g d d d d g d t d d ƒ} t  j d d g d d ƒ} t j d t j	 g d t j	 g t j	 d g g ƒ } t  j | d | d | ƒ} t
 j | | ƒ d  S(   NR   R   R   R¦   R;   R<   R§   i   i   i   i   t   VRh  R*   R+   R   RC   t   countRV   RW   R2   g      ð?g       @(   RY   R   Ra   R   t   CategoricalIndexRO   R	   R"   R  Rj   R,   R-   (   R&   Rf  RF   R]   Re   Rd   t   expected_dataR9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_categorical_aggfuncr  s$    		c         C   sN  t  j i d d d g d 6d d d g d 6d d d g d	 6ƒ } d d
 d d d d d d d d d d g } | d j d ƒ j j | ƒ | d <| j d d d d d d	 d | d d ƒ } t  j d d g d d	 ƒ} t  j d g d | d t d d ƒ} t  j d d g g d | d | ƒ} | s:| j	 ƒ  j t
 j ƒ } n  t j | | ƒ d  S(    Nid   ix   iÜ   t   Salest   JanuaryR  iÝ  iÞ  R
  t   Februaryt   Marcht   Aprilt   Mayt   Junet   Julyt   Augustt	   Septembert   Octobert   Novembert   DecemberRh  R)   R*   R+   R   RC   RD   R2   RV   RW   i@  (   RY   R   Ra   Rq   t   set_categoriesR   t
   Int64IndexRl  RO   R   R"   Ru   R,   R-   (   R&   Rf  RF   t   monthsR]   Rd   Re   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt%   test_categorical_pivot_index_orderingˆ  s.    	#			c      	   C   sù  t  i d d d g d 6d d d g d 6d	 d d
 g d 6ƒ } | j d d d d g d t j ƒ} t j d	 d d
 g d d d g g d d d g ƒ} t  d d d g d | d d g ƒ} t j | | ƒ | j d d d 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 d t	 d	 d d
 g d d ƒd t	 d d d g d d ƒƒ} t j | | ƒ | j d d d d t j g ƒ} t j d g d g g ƒ } t  d d d g d t	 d	 d d
 g d d ƒd | ƒ} t j | | ƒ d  S(   Ni   i   i   t   col1R   R   R    t   col2i   i	   t   col3R*   RC   R/   R+   R2   RD   (
   R   R   R"   RD   R
   RZ   R,   R-   t   NaNR	   (   R&   RF   R]   RT   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_table_not_series£  s2    $!	c      
   C   sœ   d } t  j i d d d g d 6ƒ } t  j | d d g d t d t d	 | ƒ} t  j d d d | g d
 d d d ƒ} t  j d | ƒ } t j | | ƒ d  S(   Nu   Î”Î¿ÎºÎ¹Î¼Î®i   i   i   R   R*   RC   RŸ   Râ   R‚   RÈ   R2   (   RY   R   R   R.   RX   R	   R,   R-   (   R&   t   greekt   frameR7   R*   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_margins_name_unicodeÉ  s    !	'c         C   s.  t  i d d d d d d d d d d d g d 6d d d d d d d d d d d g d 6t d ƒ d 6ƒ } t | d	 d d
 d d d ƒ} t d d g d d g g d d d g d d g g d d  d g ƒ } t  i i d d 6d d 6d 6i d d 6d d 6d 6d
 | ƒj d ƒ } t j | | ƒ t | d	 d d
 d d d d g ƒ} t d d d g d g d d g g d d d d d g d d d d g d d d d g g d d  d  d g ƒ } t  i i d d 6d d 6d 6i d d 6d d 6d 6i d d 6d d 6d 6i d d 6d d 6d  6d
 | ƒj d ƒ } t j | | ƒ d  S(!   NR   R   R   R   R   R   i   R   R*   R+   RC   RD   RÆ   RÇ   i    i   R/   i   i   i   i   R5   g      @g      
@g      @g«ªªªªª@(   R   R   (   R   R   (   R5   R   R   (   R5   R   R   (   RD   R   R   (   RD   R   R   (   R   R   R   R
   R“   Ró   R,   R-   (   R&   R%   R]   Rõ   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_string_as_funcÓ  s0    '$3
s
   f, f_numpyRD   R5   Rž   c         C   sV   t  |  j d d d d d | ƒ} t  |  j d d d d d | ƒ} t j | | ƒ d  S(   NR*   R   R+   R   RC   (   R   R%   R,   R-   (   R&   R|   t   f_numpyR]   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_pivot_string_func_vs_funcñ  s    
!	c         C   s{   t  i t j d ƒ d 6t j d ƒ d 6d d 6ƒ } d } t j t d | ƒ' | j d	 d d
 d d d d d ƒ Wd  QXd  S(   Ni   i   t   ind1t   ind2i    Rk  s6   Unstacked DataFrame is too big, causing int32 overflowRÏ   R*   R+   R)   RC   i   i   (   R   R"   R‡   RÐ   RÑ   R4  R   (   R&   RF   R5  (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt-   test_pivot_number_of_levels_larger_than_int32   s    N(D   t   __name__t
   __module__R(   R:   RI   RU   R_   Rf   Rl   Rm   Ro   Rp   R}   RÐ   t   markt   parametrizeRŠ   R˜   R›   R¢   RX   RO   R±   R»   RÀ   R"   R  RY   R   R	   RÉ   RÊ   t   xfailRÎ   RÓ   Rï   Rö   R÷   R  R  R&  R'  R*  R+  R,  R1  R“   R6  R@  RH  RL  RU  RV  R\  Re  Rg  Ri  Rn  R  R„  R‡  Rˆ  RD   R5   Rž   RŠ  t   slowR  (    (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyR      s†   							%				$	!		$($3$&*'*''$	>				-							*	¢	0	7							&	
	-	t   TestCrosstabc           B   sÚ   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 „  Z d „  Z d „  Z d „  Z d „  Z e j j d d d g d d g g ƒ d „  ƒ Z d „  Z RS(   c         C   sÙ   t  i d d d d d d d d d d d g d 6d d d d d d d d d d d g d 6d d d d d d d d d d d g d	 6t j j d
 ƒ d 6t j j d
 ƒ d 6t j j d
 ƒ d 6ƒ } | j | d t ƒ|  _ d  S(   NR   R   R   R   R   R   R   R   R   i   R   R    R!   t   ignore_index(   R   R"   R#   R$   t   appendRX   RF   (   R&   R'   RF   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyR(     s    c         C   sj   |  j  } t | d | d ƒ } | j d d g ƒ j ƒ  j ƒ  } t j | | j d ƒ j t	 j
 ƒ ƒ d  S(   NR   R   i    (   RF   R   R3   t   sizeR6   R,   R-   t   fillnaRa   R"   Ru   (   R&   RF   R]   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_crosstab_single  s    	!c         C   sü   |  j  } t | d | d | d g ƒ } | j d d d g ƒ j ƒ  } | j d ƒ j d ƒ j d ƒ j t j ƒ } t	 j
 | | ƒ t | d | d g | d ƒ } | j d d d g ƒ j ƒ  } | j d ƒ j d ƒ j t j ƒ } t	 j
 | | ƒ d  S(   NR   R   R   i    (   RF   R   R3   R—  R6   R˜  Ra   R"   Ru   R,   R-   (   R&   RF   R]   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_crosstab_multiple%  s    	!'!$c         C   ss  t  j j d d d d ƒ} t  j j d d d d ƒ} t  j j d d d d ƒ} t i | d 6| d 6| d	 6ƒ } t | | | g d
 d g d d ƒ} t | d | d | d	 g ƒ } t j | | ƒ t | | g | d d g d
 d ƒ} t | d | d	 g | d ƒ } t j | | ƒ t |  j d j |  j d j ƒ } | j	 j
 d k sWt ‚ | j j
 d k sot ‚ d  S(   Ni    i   R—  id   i   i
   R;   R<   R=   t   rownamest   colnamesR   R   t   row_0t   col_0(   R<   R=   (   R<   R=   (   R"   R#   R  R   R   R,   R-   RF   R)   R*   R2   R1   R+   (   R&   R;   R<   R=   RF   R]   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_crosstab_ndarray3  s    !$!$!#c      	   C   s  t  j d d d g d d d d g ƒ} t  j d d d d d g d d d d d	 d
 g ƒ} t j d d d g ƒ } t  j d d g d d g g d t d d g d d ƒd t d d g d d ƒƒ} t | | ƒ } t j | | ƒ t | | ƒ } t j | | ƒ d  S(   Ni    i   R*   R;   R<   R=   i   i   RM   R|   R2   R  R+   Rž  (	   RY   R   R"   R  R   R	   R   R,   R-   (   R&   R;   R<   R=   R9   R]   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_crosstab_non_alignedG  s    '3c      	   C   sñ  t  j j d d d d ƒ} t  j j d d d d ƒ} t  j j d d d d ƒ} t i | d 6| d 6| d	 6ƒ } t | | | g d
 d g d d d t ƒ} | j j d k s´ t ‚ | j	 j d d	 g k sÒ t ‚ | d } | j
 d g ƒ j ƒ  j d ƒ } t t | ƒ g d t d g d d ƒƒ} | j | ƒ } d | _ t j | | ƒ | j d }	 | j
 d d	 g ƒ j ƒ  j d ƒ }
 |
 j t t | ƒ g d d g ƒƒ }
 d |
 _ |
 j |	 j ƒ }
 |
 j d ƒ j t  j ƒ }
 t j |	 |
 ƒ d  S(   Ni    i   R—  id   i   i   R;   R<   R=   R›  Rœ  RŸ   RÔ   RÖ   t   i8R*   R2   (   R<   R=   (   R;   (   RÔ   RÖ   (   RÔ   RÖ   (   RÔ   RÖ   (   R"   R#   R  R   R   RX   R*   R/   R1   R+   R3   R—  Ra   R   R.   R	   R–  R2   R,   R{   R«   Rc   R˜  Ru   (   R&   R;   R<   R=   RF   R]   t   all_colst   exp_colst
   exp_margint   all_rowst   exp_rows(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_crosstab_marginsW  s*    !!	
!*	$'	c         C   sg  t  j j d d d d ƒ} t  j j d d d d ƒ} t  j j d d d d ƒ} t i | d 6| d 6| d	 6ƒ } t | | | g d
 d g d d d t d d ƒ} | j j d k sº t ‚ | j	 j d d	 g k sØ t ‚ | d } | j
 d g ƒ j ƒ  j d ƒ } t t | ƒ g d t d g d d ƒƒ} | j | ƒ } d | _ t j | | ƒ | j d }	 | j
 d d	 g ƒ j ƒ  j d ƒ }
 |
 j t t | ƒ g d d g ƒƒ }
 d |
 _ |
 j |	 j ƒ }
 |
 j d ƒ j t  j ƒ }
 t j |	 |
 ƒ d } xg d d  d d g g D]P } t j t d | ƒ3 t | | | g d
 d g d d d t d | ƒWd  QXqWd  S(   Ni    i   R—  id   i   i   R;   R<   R=   R›  Rœ  RŸ   Râ   t   TOTALRÖ   R¡  R*   R2   s&   margins_name argument must be a stringiš  RÏ   (   R<   R=   (   R;   (   R¨  RÖ   (   R¨  RÖ   (   R¨  RÖ   (   R<   R=   (   R"   R#   R  R   R   RX   R*   R/   R1   R+   R3   R—  Ra   R   R.   R	   R–  R2   R,   R{   R«   Rc   R˜  Ru   R“   RÐ   RÑ   R4  (   R&   R;   R<   R=   RF   R]   R¢  R£  R¤  R¥  R¦  R5  Râ   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt%   test_crosstab_margins_set_margin_namev  s4    !!
!*	$'	!c      
   C   sÿ   t  j j d d d d ƒ} t  j j d d d d ƒ} t  j j d d d d ƒ} t  j j d ƒ } t | | g | | d t  j d d	 d
 g d d g ƒ} t i | d	 6| d
 6| d 6| d 6ƒ } | j d d d	 d
 g d d d t  j ƒ} t j	 | | ƒ d  S(   Ni    i   R—  id   i   i   RC   R›  R   R   Rœ  RÁ   R)   R*   R+   (
   R"   R#   R  R$   R   RD   R   R   R,   R-   (   R&   R;   R<   R=   R)   R7   RF   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_crosstab_pass_valuesœ  s    (c      	   C   sï   t  j d d d d d d d g d t ƒ} t  j d d d d d d d g d t ƒ} t  j d d d d d d d g d t ƒ} t j | | | g d d	 g d
 d d g d t ƒ} t j d d d d g d d d g ƒ} t j	 | j
 | ƒ d  S(   NR   R   R‚   R   R   R   R   R›  R;   Rœ  R<   R=   R   R/   (   R   R   (   R   R   (   R   R   (   R   R   (   R"   R  RÈ   RY   R   RO   R
   RP   R,   RQ   R+   (   R&   R;   R<   R=   R•   RT   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_crosstab_dropna«  s    c         C   s}   t  j d d d g d d d d g ƒ} t  j d d d g d d d d g ƒ} t | | ƒ } t  j ƒ  } t j | | ƒ d  S(   Ni   i   i   R*   i   i   i   (   RY   R   R   R   R,   R-   (   R&   t   s1t   s2t   actualR9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_crosstab_no_overlapº  s
    ''c         C   sö  t  j i d d d d d t j g d 6d d d d d d g d 6ƒ } t  j | j | j d t d t ƒ} t  j d d	 d g d d d g d d d
 g g ƒ } t d d d g d d ƒ| _	 t d d d g d d ƒ| _
 t j | | ƒ t i d t j t j t j d t j g d 6d t j d d d d g d 6ƒ } t  j | j | j d t d t ƒ} t  j d d	 d g d	 d d g d d d g g ƒ } t d d d g d d ƒ| _	 t d d d g d d ƒ| _
 t j | | ƒ t i d t j t j t j t j d g d 6d d d d d d g d 6ƒ } t  j | j | j d t d t ƒ} t  j d d	 d g d	 d d g d d d g g ƒ } t d d d g d d ƒ| _	 t d d d g d d ƒ| _
 t j | | ƒ t  j i d d d d d t j g d 6d d d d d d g d 6ƒ } t  j | j | j d t d t ƒ} t  j d d	 d g d d d g d d d g g ƒ } t d d d g d d ƒ| _	 t d d d g d d ƒ| _
 t j | | ƒ t i d t j t j t j d t j g d 6d t j d d d d g d 6ƒ } t  j | j | j d t d t ƒ} t  j d d	 d g d	 d d g d d d g g ƒ } t d d d g d d ƒ| _	 t d d d g d d ƒ| _
 t j | | ƒ t j d d d d d d d g d t ƒ} t j d d d d d t j d g d t ƒ} t j d d d d d d d g d t ƒ} t  j | | | g d d g d d d g d t d t ƒ} t j d d d d d g d d d d d g g d d d g ƒ} t d d	 d d	 d g d d	 d d d
 g d d	 d d d g g d | ƒ} t d d d g d d ƒ| _	 t j | | ƒ t  j | | g | d d d g d d g d t d t ƒ} t j d d d d d g d d d d d g g d d d g ƒ} t d d	 d g d d	 d g d d	 d g d d d g d
 d d g g d  | ƒ} t d d d g d d ƒ| _
 t j | | ƒ t  j | | g | d d d g d d g d t d t ƒ} t j d d d d d g d d d d d g g d d d g ƒ} t d d	 d g d d	 d g d d	 d g d d d g d
 d d g g d  | ƒ} t d d d g d d ƒ| _
 t j | | ƒ d  S(!   Ni   i   R;   i   i   R<   RŸ   R   i    i   g      ð?g       @RÔ   R2   g      @g      @i   R   R   R‚   R   R   R   R   R›  Rœ  R=   RÖ   R/   i   R+   R*   (   RY   R   R"   Rj   R   R;   R<   RX   R	   R*   R+   R,   R-   RO   R  RÈ   R
   RZ   (   R&   RF   R®  R9   R;   R<   R=   RT   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_margin_dropnaÅ  sˆ    %$3+"$3+$3%$3+"$3'!!3!3c         C   s1  t  j i d d d d d g d 6d d d d d g d 6d d t j d d g d 6ƒ } t  j d d g d d ƒ} t  j d d g d d ƒ} t  j d	 d
 g d	 d g g d | d | ƒ} t  j d d
 g d d g g d | d | ƒ} t  j d d
 g d d g g d | d | ƒ} t j t  j | j | j	 d d ƒ| ƒ t j t  j | j | j	 d t
 ƒ| ƒ t j t  j | j | j	 d d ƒ| ƒ t j t  j | j | j	 d d ƒ| ƒ t j t  j | j | j	 d d ƒt  j | j | j	 d d ƒƒ t j t  j | j | j	 d d
 ƒt  j | j | j	 d d ƒƒ t  j d d
 g d d g d d g g d t  j d d d g d d d d ƒd t  j d d g d d d d ƒƒ} t  j d d
 d	 g d d d g g d t  j d d g d d d d ƒd t  j d d d g d d d d ƒƒ} t  j d	 d
 d	 g d	 d d g d d d g g d t  j d d d g d d d d ƒd t  j d d d g d d d d ƒƒ}	 t j t  j | j | j	 d d d t
 ƒ| ƒ t j t  j | j | j	 d d d t
 ƒ| ƒ t j t  j | j | j	 d t
 d t
 ƒ|	 ƒ t  j t j d d d d g ƒ t j d d d d g ƒ g t j d d d d g ƒ ƒ t  j d d
 d g d d d g d d d g g d t  j d d d g d d d d ƒd t  j d d d g d d ƒƒ}
 t  j | j | j	 | j d d d d d t
 ƒ} t j | |
 ƒ t  j i d d d d d g d 6d d d d d g d 6d
 d t j d d g d 6ƒ } t  j d
 d
 d g d d d g d d d g g d t  j d d d g d d d d ƒd t  j d d d g d d d d ƒƒ} t  j | j | j	 | j d t j d d d t
 ƒ} t j | | ƒ d  S(   Ni   i   R;   i   i   R<   R=   R2   gš™™™™™É?i    g333333ã?R*   R+   g      ð?g      Ð?g      è?g      à?t	   normalizeR  gš™™™™™Ù?RÔ   R‚   RÈ   gš™™™™™é?RŸ   RC   Rk  g        (   RY   R   R"   Rj   R	   R,   R-   R   R;   R<   RX   R  R=   RD   (   R&   RF   t   rindext   cindext   full_normalt
   row_normalt
   col_normalt   row_normal_marginst   col_normal_marginst   all_normal_marginst   norm_countst	   test_caset   norm_sum(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_crosstab_normalize  s¢    5!!!!!!		$		!!!9	!	5	$	c      
   C   sµ  t  j i d d d d d g d 6d d d d d g d 6t j t j t j t j t j g d 6ƒ } t  j d d g d d g g d	 t  j d d g d
 d d d ƒd t  j d d g d
 d ƒƒ} xT t d	 d g D]C } t  j | j | j d | j	 d d d | ƒ} t
 j | | ƒ qÍ Wt  j d t j g d d g g d	 t  j d d g d
 d d d ƒd t  j d d g d
 d ƒƒ} t  j | j | j d | j	 d d d t ƒ} t
 j | | ƒ d  S(   Ni   i   R;   i   i   R<   R=   g        R*   R2   R‚   Ru   R+   R)   RC   Rk  R±  (   RY   R   R"   Rj   R	   RX   R   R;   R<   R=   R,   R-   RO   (   R&   RF   R  Rt   t
   calculatedt   nans(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_crosstab_with_emptiesy  s&    5+	$	!	$	c         C   s”  t  j i d d d d d g d 6d d d d d g d 6d d t j d d g d 6ƒ } d } t j t d	 | ƒ$ t  j | j | j	 d
 | j
 ƒWd  QXd } t j t d	 | ƒ$ t  j | j | j	 d t j ƒWd  QXd } t j t d	 | ƒ! t  j | j | j	 d d ƒWd  QXt j t d	 | ƒ! t  j | j | j	 d d ƒWd  QXd } t j t d	 | ƒ' t  j | j | j	 d d d d ƒWd  QXd  S(   Ni   i   R;   i   i   R<   R=   s)   values cannot be used without an aggfunc.RÏ   R)   s%   aggfunc cannot be used without valuesRC   s   Not a valid normalize argumentR±  t   42i*   s   Not a valid margins argumentR  RŸ   (   RY   R   R"   Rj   RÐ   RÑ   R4  R   R;   R<   R=   R5   (   R&   RF   t   error(    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_crosstab_errors“  s     5%%""c         C   s%  t  j i d d d d d d g d 6d d d d d d g d 6ƒ } d d d g } | d j d	 ƒ j j | ƒ | d <t  j | d | d ƒ } t  j d d d g d
 d ƒ} t  j | d | d t d
 d ƒ} d d d g d d d g d d d g g } t  j | d | d | ƒ} t	 j
 | | ƒ d  S(   Nt   Hondat   Acurat   Teslat   MAKEt   Sedant   Electrict   Pickupt   MODELRh  R2   RV   RW   i   i    i   R*   R+   (   RY   R   Ra   Rq   R|  R   R	   Rl  RO   R,   R-   (   R&   RF   RV   R]   Re   Rd   Rm  R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt%   test_crosstab_with_categorial_columns¬  s$    		*	c         C   s3  t  j i d d d d g d d 6d d d g d d 6d	 d	 d	 d
 d
 d
 g d d 6t j j d ƒ d 6t j j d ƒ d 6ƒ } t  j d | d | d g d | d g d t d t j d | d ƒ } t  j d d d d d g d d d d g g d d d d d d d d d d d g
 d d d d d d d d d d g
 g d d d g ƒ } t  j	 d
 d	 d g d d d d ƒ} t j
 d  d  d! g d  d  d! g d  d  d! g d  t j d  g t j d  d  g d  t j d  g t j d  d  g d  t j d  g t j d  d  g d" d" d# g g
 ƒ } t  j | d | d | ƒ} t j | | ƒ d  S($   NR   R   t   threei   R   R   R   i   R   R   i   i   R   R    R*   R+   RŸ   RC   R)   RÆ   RÔ   RÖ   RÇ   i   i   i   i    R/   R‚   RÈ   R2   g       @g      @g      (@g      8@(   RY   R   R"   R#   R$   R   RX   R—  R
   R	   R  Rj   R,   R-   (   R&   RF   R]   Re   t   expected_columnRm  R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_crosstab_with_numpy_sizeÂ  s@     	!'		c         C   s‰   t  j t d ƒ d d ƒ} t  j | | ƒ } t  j t d ƒ d d ƒ} t  j t j d d t j ƒd | d | ƒ} t	 j
 | | ƒ d  S(   Ni   R2   R   R‚   R*   R+   (   RY   R   R   R   R	   R   R"   t   eyeRu   R,   R-   (   R&   t   sR]   Re   R9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_crosstab_dup_index_nameså  s    	R/   R;   R<   R=   c         C   s¸   t  j t d ƒ d | d ƒ} t  j t d d ƒ d | d ƒ} t  j j t d ƒ t d d ƒ g d | ƒ} t  j d d | ƒj d d d ƒ} t  j | | ƒ } t j | | ƒ d  S(	   Ni   R2   i    i   i   R/   R*   Rv   (	   RY   R   R   R
   RZ   R6   R   R,   R-   (   R&   R/   R¬  R­  Rõ   R9   R]   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_crosstab_tuple_nameð  s    "-$c         C   s÷   t  j i d d d g d 6d d d g d 6d	 d
 d d g ƒ} t  j | j | j | j g ƒ } t  j d d d
 g d d ƒ} t  j j d d d g d d d g ƒ} t  j d d d g d d d g d d d g g d	 | d | ƒ} t	 j
 | | ƒ d  S(   Ni   i   i   R<   i   i   i   R;   R*   R   R   R   R2   R  R/   i    R+   (   i   i   (   i   i   (   i   i   (   RY   R   R   R*   R<   R;   R	   R
   RP   R,   R-   (   R&   RF   R]   t   e_idxt	   e_columnsR9   (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   test_crosstab_unsorted_orderü  s    ,!0	(   R<   R=   (   R;   R<   (   RŽ  R  R(   R™  Rš  RŸ  R   R§  R©  Rª  R«  R¯  R°  R½  RÀ  RÃ  RÌ  RÏ  RÒ  RÐ   R  R‘  RÓ  RÖ  (    (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyR”    s(   							&				U	_				#	(&   t   collectionsR    R   R   R   t   numpyR"   RÐ   t   pandas.compatR   R   t   pandasRY   R   R   R   R	   R
   R   R   R   t   pandas.api.typesR   Rb   t   pandas.core.reshape.pivotR   R   t   pandas.util.testingt   utilt   testingR,   t   fixtureRX   RO   R   RÈ   R   R”  (    (    (    s>   lib/python2.7/site-packages/pandas/tests/reshape/test_pivot.pyt   <module>   s    :!ÿ ÿ ÿ ÿ ø