
    o[we                     :   d Z ddlmZ ddlZddlZddlmc mZ	 ddl
mZ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 Zd Zg Zg ZdD ]Z ed	d
          D ]\  ZZ eeee          Z d ej!        d e"de d         "                                          dz   d          fZ#ddddgfZ$ ee$e#          D ]<\  Z%Z&e'                    e e%e&eef           e'                    e% de de            =ej(        j)        ej(        *                    dee          ej(        *                    dddg          ej(        *                    dddg          ej(        *                    dddg          ej(        *                    dddg          ej(        *                    dddg          d                                                                                     Z+ej(        *                    dddg          d             Z,ej(        *                    d d!d"gg d#g          d$             Z-ej(        *                    d d!d"gg d#g          d%             Z.d& Z/d' Z0ej1        d(             Z2d) Z3d* Z4d+ Z5d, Z6ej(        *                    d-g d.          ej(        *                    dddg          ej(        *                    d/g d0          ej(        *                    d1ddg          ej(        *                    d2ddg          d3                                                             Z7ej(        *                    d4e8 ej9        d5 e	j:        d6          7           ej9        d8 e	j:        d6          7          g          ej(        *                    d9ddg          ej(        *                    d:ddg d;g d<g d=fddg d>g d?g d@fddg dAg dBg d@fg          dC                                     Z;ej1        dD             Z<ej(        *                    dEddddFg dGg dHfddddFg dIg dJfddddFg dKg dLfddddMg dNg dLfg          dO             Z=ej1        dP             Z>ej(        *                    dQddg dRg dSfddg dTg dUfddg dVg dWfddg dXg dYfg          dZ             Z?ej1        d[             Z@ej(        *                    d\dddg ejA        g d]g d^_          fdg d` e edg           eg da           edbdcejB        g          gg ddg deg dfgg d^g          fg          ej(        *                    dddg          dh                         ZCej(        *                    d1ddg          ej(        *                    diddg          ej(        *                    djddF ejD        g dkejE        l          fddM ejD        g dm          fg          dn                                     ZFdo ZGej(        *                    d1ddg          ej(        *                    djddF ejD        g dkejE        l          fddM ejD        g dm          fg          dp                         ZHej(        *                    d1ddg          ej(        *                    djddF ejD        g dqejE        l          fddM ejD        g dr          fg          ds                         ZIej(        *                    d1ddg          ej(        *                    dtdg dufdg dvfg          ej(        *                    djddF ejD        g dwejE        l          fddM ejD        g dx          fg          dy                                     ZJej(        *                    d1ddg          ej(        *                    diddg          ej(        *                    djddF ejD        g dkejE        l          fddM ejD        g dm          fg          dz                                     ZKej(        *                    d{ddFg d|fddMg dYfg          d}             ZLej(        *                    d~d eMd          g dfd eMd          dgz   g dfg          ej(        *                    d1ddg          d                         ZNej(        *                    dddg          d             ZOd ZPd ZQd ZRd ZSd ZTej(        *                    dddg          d             ZUd ZVdS )z
these are systematically testing all of the args to value_counts
with different size combinations. This is to ensure stability of the sorting
and proper parameter handling
    )productN)	CategoricalCategoricalIndex	DataFrameGrouperIndex
MultiIndexSeries
date_rangeto_datetime)Versionc                     t          dgdgd          } | d                             d          | d<   |                     d          d                                         }t          ddggddg          }|d                             d          |d<   t	          j        |          }t          dg|d	
          }t          j        ||           d S )NfemaleUS)gendercountryr   categoryr   columns   countindexname)	r   astypegroupbyvalue_countsr	   
from_framer
   tmassert_series_equal)dfresultdf_mi_expectedmi_expectedexpecteds        Flib/python3.11/site-packages/pandas/tests/groupby/test_value_counts.py.tests_value_counts_index_names_category_columnr'      s    	jv	
 	

 
B h<&&z22BxLZZ	""8,99;;F x 01Ix;PQQQN-h7>>zJJN8'77Kqc7;;;H68,,,,,    c           	         t          dd          }t          t          j                            d                              t          d          |          t          j                            d                              ||          t          j                            d                              d|dz   |          d          }| r|d                             d	          |d<   t          j	        |j
        dd d
df<   t          j	        |j
        dd ddf<   t          j	        |j
        dd ddf<   t          j	        |j
        dd ddf<   t          j	        |j
        dd ddf<   |S )Nz
2015-08-24
   )periods   abcdr   )1st2nd3rdr0   float   r.         r/            	   )r   r   nprandomdefault_rngchoicelistintegersr   nanloc)	seed_nansnmdaysframes        r&   seed_dfrF   2   sD   lB///D9((++224<<CC9((++224;;9((++44QAqAA	
 	
 E  )U|**733e"$&	!%R%,"$&	!%R%,"$&	!%R%,"$&	!%R%,"$&	!%R%,Lr(   TF)d   i  )      rI   r0   r   r,   r.   r/   -zdf, keys, bins, n, m)idsisortTFznormalize, name)T
proportion)Fr   sort	ascendingdropnac                    d }|||	|
|d}|                      ||          } |d         j        di |}|                      ||          } |d         j        t          j        fi |}|j        j        d d         dgz   |j        _        |                    |          }t          |||f          \  }}t          j	        |
                                |
                                           d S )Nc                     t          t          | j        j        t	          | j        j                                      }t          j        || j        j                  | _        | S )Nnames)	r=   mapr   get_level_valuesrangenlevelsr	   from_arraysrU   )r!   arrs     r&   rebuild_indexz7test_series_groupby_value_counts.<locals>.rebuild_index`   sK    3rx0%8H2I2IJJKK)#RX^DDD	r(   )	normalizerO   rP   rQ   binsrO   r0    )r   r   applyr
   r   rU   renamerV   r   r    
sort_index)r!   keysr^   rB   rC   rM   r]   r   rO   rP   rQ   r\   kwargsgrleftrights                   r&    test_series_groupby_value_countsrj   V   s       F 
Du	%	%B!2e9!++F++D	Du	%	%BBuIOF/::6::E)#2#.%8EKLLE mdE]33KD%4??,,e.>.>.@.@AAAAAr(   utcc                    t          g dg dd                              dg          }t          |d         | d          |d<   |                    t	          d	d
                    }|d                                                                         }|d                             t          j                                                  }|j	        j
        |j	        _
        |                    d          }t          j        ||           d S )NiGI]i)J]iJ]iK]i)<M]iU=M]iN]applero   bananarp   orangerq   pear	TimestampFoodr3   rt   srk   unitDatetime1Dfreqkeyru   r   )r   dropr   r   r   r   rd   rb   r
   r   rU   rc   r   r    )rk   r!   dfgr"   r%   s        r&   -test_series_groupby_value_counts_with_grouperr   {   s    
   WVV	
 	

 
 dA3ii  !KcDDDBzN
**W$J777
8
8C [%%''2244F6{  !455@@BBH!<-HNw''H68,,,,,r(   r   AB)r   r   Cc                 P   t          |           }|                    | d d                   }|| d                                                  }t          g |j        d          }t          j        g gt          |           z  |           |_        t          j
        ||           d S )Nr   r`   r   )dtyper   rT   )r   r   r   r
   r   r	   rZ   lenr   r   r    r   r!   r   r"   r%   s        r&   &test_series_groupby_value_counts_emptyr      s     
7	#	#	#B
**WSbS\
"
"C**,,Fb7;;;H+RD3w<<,?wOOOHN68,,,,,r(   c                 *   t          t          t          |                     g|           }|                    | d d                   }|| d                                                  }|                                }t          j        ||           d S )N)datar   r`   )r   rX   r   r   r   r   r    r   s        r&   (test_series_groupby_value_counts_one_rowr      s     
s7||,,-w	?	?	?B
**WSbS\
"
"C**,,F  H68,,,,,r(   c                  d   t          t          dgddg                    } |                     dg                                          }t          ddgt	          j        t          j        ddg          t          ddgddgdd          g          d	
          }t          j
        ||           d S )Nab)
categoriesr   r   Fr   )r   orderedr   r   r   r   r   )r
   r   r   r   r	   rZ   r9   arrayr   r   r    )rv   r"   r%   s      r&   /test_series_groupby_value_counts_on_categoricalr      s     	{C5c3Z88899AYYs^^((**FV$!Q   #JC:uJ  
 
   H$ 68,,,,,r(   c                  @   t          g dg dg dd          } |                     ddgd          d	         }|                    d          }t          d
dgddgg dgg dg dg dgg d          }t	          g d|d          }t          j        ||           d S )Nmaler   r   r   r   r   lowmediumhighr   r   r   r   FRr   r   r   r   r   	educationr   r   r   Fr_   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   levelscodesrU   r   r   r   r,   r   r   r   )r   r   r   r	   r
   r   r    )r!   gbr"   r   r%   s        r&   (test_series_groupby_value_counts_no_sortr      s    	JJJHHH;;;	
 	

 
B 
Y)	6	6{	CB__%_((Ftvx02K2K2KLA000  E
 oooUAAAH68,,,,,r(   c                  4    t          g dg dg dd          S )Nr   r   r   r   r   ra   r(   r&   education_dfr      s9    JJJHHH;;;	
 	
  r(   c                 .   d}t          j        t          |          5  |                     dd          }d d d            n# 1 swxY w Y   t	          j        t          d          5  |                                 d d d            d S # 1 swxY w Y   d S )Nz+DataFrame.groupby with axis=1 is deprecatedmatchr   r   axisr   )r   assert_produces_warningFutureWarningr   pytestraisesNotImplementedErrorr   )r   msggps      r&   	test_axisr      s   
7C		#M	=	=	= 5 5!!)!!445 5 5 5 5 5 5 5 5 5 5 5 5 5 5	*&	9	9	9  
                 s#   AA	A(B

BBc                     |                      d          }t          j        t          d          5  |                    dg           d d d            d S # 1 swxY w Y   d S )Nr   subsetr   r   )r   r   r   
ValueErrorr   )r   r   s     r&   test_bad_subsetr      s    			i	(	(B	z	2	2	2 , ,
	{+++, , , , , , , , , , , , , , , , , ,s   AAAc                    t          t          j                  t          d          k    r9|j                            t
          j                            dd                     |                     d          ddg         	                    d	          }t          g d
t          j        g dg d          d          }t          j        ||           d S )N1.25Ypandas default unstable sorting of duplicatesissue with numpy>=1.25 with AVX instructionsFreasonstrictr   r   r   Tr]   )      ?      ?r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rT   rN   r   )r   r9   __version__node
add_markerr   markxfailr   r   r
   r	   from_tuplesr   r    )r   requestr"   r%   s       r&   
test_basicr      s   r~'&//11KC    	
 	
 	
 !!),,h-DERR S  F ((($   544	
 	
 	
   H 68,,,,,r(   c                 >    | |                              |||          S )Nr]   rO   rP   )r   )r!   re   r]   rO   rP   s        r&   _frame_value_countsr     s!    d8  949 UUUr(   r   columnr   functionzsort, ascending))FN)TTrG   as_indexrE   c	                     t          t          j                  t          d          k    r?|r=|r;|r9|j                            t
          j                            dd                     d d         j         fdd|         }	 	                    |	|          }
|
d	d
g         
                    |||          }|r|
                    t          d	d
g|||          }|rt          j        ||           d S |rdnd}|                                                    d|id          }|dk    r9|                    ddid          }t          j        |d         dd          |d<   n5|dk    r|d         dk    |d<   nt          j        |d         dd          |d<   t          j        ||           d S  d	         dz    d
         z    d<   |
d         
                    |||          }||_        |r|j                            d          }|d         j                            d          j                            d          |d	<   |d         j                            d          j                            d          |d
<   |d= |                    dd id          }t3          j        |          |_        t          j        ||           d S |                    dd	|d         j                            d          j                            d                     |                    dd
|d         j                            d          j                            d                     |d= t          j        ||           d S )Nr   r   Fr   r   c                 (    d         |          dk    S )Nr   r   ra   )xr   s    r&   <lambda>z6test_against_frame_and_seriesgroupby.<locals>.<lambda>C  s    l95a8D@ r(   r   )byr   r   r   r   rN   r   r   r   r   r   level_0r   r   r   rK   bothr   r,   )r   r9   r   r   r   r   r   r   valuesr   r   rb   r   r   r    reset_indexrc   whereassert_frame_equalr   r   to_framestrsplitgetr	   r   insert)r   r   r]   r   rO   rP   r   rE   r   r   r   r"   r%   index_frames   `             r&   $test_against_frame_and_seriesgroupbyr     s   . r~'&//11e111KC    	
 	
 	
 i(/@@@@
 
 	
B 
		h		7	7B;'(55$) 6  F  &488(K!8)T9
 
  	4"6844444#,9<<'D++--44aYQ4GGH(""#??Iy+A?JJ&(hx	/BD$&O&O##J&&&.y&9Q&>##&(hx	/BD$&O&O#!&(33333  ,H5;l;>WWVf:**di + 
 
  	4".111>>K$/$7$;$A$A#$F$F$J$N$Nq$Q$QK!'26':'>'D'DS'I'I'M'Q'QRS'T'TK$F#%,,aYQ,??K'2;??HN"6844444OOAx&)9)=)C)CC)H)H)L)P)PQR)S)STTTOOA{HV,<,@,F,Fs,K,K,O,S,STU,V,VWWW !&(33333r(   r   zstring[pyarrow_numpy]pyarrow)marksstring[pyarrow]r]   zCsort, ascending, expected_rows, expected_count, expected_group_size)r   r   r,   r3      r   )r   r3   r   r3   r   )r   r3   r   r,   r   )r   r,   r   r   r   )r   r3   r3   r   r   )r   r   r3   r,   r   )r   r   r,   r   r   c                                           |            j                             |           _                             ddgdd          }|d                             |||          }	t	                      }
dD ]H fd|D             |
<   |
                     |          }
|
j                             |          |
_        I|r9||
d	<   |
d	xx         |z  cc<   |d
k    r|
d	                                         |
d	<   n(||
d<   |d
k    r|
d                                         |
d<   t          j        |	|
           d S )Nr   r   Fr   rO   r   r   r   c                 ,    g | ]}         |         S ra   ra   ).0rowr   r   s     r&   
<listcomp>z!test_compound.<locals>.<listcomp>  s#    OOO#L05OOOr(   rN   r   r   )r   r   r   r   r   convert_dtypesr   r   )r   r]   rO   rP   expected_rowsexpected_countexpected_group_sizer   r   r"   r%   r   s   `          @r&   test_compoundr   s  s   6  &&u--L'/66u==L			y(3e%		P	PB_))$) *  F {{H4 : :OOOOOOOO??5))#+22599 C!/"55%%%%-l%;%J%J%L%LH\"*%%% ( 1 @ @ B BHW&(+++++r(   c                  <    t          g dg dg ddg d          S )Nr   r   r   r   )r,   r   r      )r,   r   r   r   r}   num_legs	num_wings)falcondogcatantr   r   ra   r(   r&   
animals_dfr    s;    ,,,\\\RR---   r(   z?sort, ascending, normalize, name, expected_data, expected_indexr   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   r,   r   rN   )r   r   r   c                 0   |                      |||          }t          |t          j        |g d          |          }t	          j        ||           |                     d                               |||          }	t	          j        |	|           d S )N)rO   rP   r]   r   rT   r   r}   )r   r
   r	   rZ   r   r    r   )
r  rO   rP   r]   r   expected_dataexpected_indexresult_framer%   result_frame_groupbys
             r&   test_data_frame_value_countsr    s    * **Y) +  L $"B"B"B
 
 
   H <222%--e44AAY) B   /:::::r(   c                      t           j        } t          dd| d| ddddg	ddd| | ddddg	dddddd| d| g	ddddddd| | g	d	          S )
Nr   r   r   r3   r,   rI   r7   r5   )r   r   r   D)r9   r?   r   )rB   s    r&   nulls_dfr    s}    
AQ1aAq!,Q1aAq!,Q1aAq!,Q1aAq!,		
 	
  r(   z:group_dropna, count_dropna, expected_rows, expected_values)	r   r   r3   rI   r5   r   r7   r,   r   )	r   r         ?r   r   r   r   r  r  )r   r   r3   rI   r,   r   )r   r   r  r  r  r  )r   r   rI   r5   r   r7   )r   r   r   r   r   r   )r   r   rI   )r   r   r  c                      t          t          j                  t          d          k    r;|s9|j                            t
          j                            dd                                          ddg|          }|	                    dd|	          }t                      } j        D ] fd
|D             |<   t          j        |          }	t          ||	d          }
t          j        ||
           d S )Nr   r   Fr   r   r   )rQ   T)r]   rO   rQ   c                 ,    g | ]}         |         S ra   ra   )r   r   r   r  s     r&   r   z,test_dropna_combinations.<locals>.<listcomp>  s#    JJJS8F+C0JJJr(   rN   r   )r   r9   r   r   r   r   r   r   r   r   r   r   r	   r   r
   r   r    )r  group_dropnacount_dropnar   expected_valuesr   r   r"   r   r   r%   r   s   `          @r&   test_dropna_combinationsr    s   " r~'&//11,1KC    	
 	
 	
 
		3*\		:	:B__t$|_LLFkkG" K KJJJJJMJJJ!'**E?%lKKKH68,,,,,r(   c                 8    t          g dg dd| | dgd          S )Nr   )JohnAnner  BethSmithLouiser}   
first_namemiddle_namer   )nulls_fixtures    r&   names_with_nulls_dfr#    s:    <<:::#]M8L	
 	
  r(   z%dropna, expected_data, expected_index)r   r   )r  r  )r  r  r  rT   r   )r  r  r  r  r  )r   r   r   r   )r   r   r,   r,   )r,   r   r   r,   r   c                 B   |                      ||          }t          |||          }|r|t          t          |                    z  }t	          j        ||           |                     d                               ||          }t	          j        ||           d S )N)rQ   r]   r   r}   )r   r
   r1   r   r   r    r   )	r#  rQ   r]   r   r
  r  r  r%   r  s	            r&   #test_data_frame_value_counts_dropnar&    s    B '336Y3WWL  H
  .E#m,,---<222.66u==JJ K   /:::::r(   observedznormalize, name, expected_data)r,   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r           r)  r)  r   r   r)  r)  r)  r)  c                    t          t          j                  t          d          k    r9|j                            t
          j                            dd                     |                     d          	                    d||          }|
                    |          }t          j        g d	g d
          }	t          ||	|          }
t          d          D ]@}|
j                            t#          |
j        j        |                   |          |
_        A|rt'          j        ||
           d S |
                    |rdnd          }t'          j        ||           d S )Nr   r   Fr   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   r   r   r   r   rT   r   r3   levelrN   r   r   )r   r9   r   r   r   r   r   r   r   r   r   r	   r   r
   rX   r   
set_levelsr   r   r   r    r   r   r   r   r'  r]   r   r
  r   r   r"   r  expected_seriesir%   s                r&   =test_categorical_single_grouper_with_only_observed_categoriesr;  F  s   , r~'&//11KC    	
 	
 	
 
		Z	(	(	0	0Hx 
1 
 
B __y_11F+	
 	
 	
 100  N$   O
 1XX 
 
 / 5 @ @_29!<==Q !A !
 !
  0
v77777"..!*7 / 
 
 	fh/////r(   c                    |                                                      d          } | d         j                            dg          | d<   |                     d||          }|                    |          }t          |t          j        |g d          |          }	t          d	          D ]m}
t          |	j        j        |
                   }|
d
k    r%|                    | d         j        j                  }|	j                            ||
          |	_        n|rt!          j        ||	           d S |	                    |          }t!          j        ||           d S )Nr   r   ASIAr+  r   r   rT   r   r3   r   r4  r6  )copyr   r  add_categoriesr   r   r
   r	   r   rX   r   r   r   set_categoriesr   r7  r   r    r   r   )r   r   r'  r  r]   r   r
  r   r"   r9  r:  index_levelr%   s                r&   !assert_categorical_single_grouperrB    s     $$&&--j99L +959HH&RRL			i(X		N	NB__y_11F$444
 
 
   O 1XX W W&'<'CA'FGG66%44Y'+6 K !0 5 @ @TU @ V V 0
v77777"..D.99
fh/////r(   c           	          t          t          j                  t          d          k    r9|j                            t
          j                            dd                     g d}t          | |d||||           d S )Nr   r   Fr   r,  Tr   r   r'  r  r]   r   r
  	r   r9   r   r   r   r   r   r   rB  r   r   r]   r   r
  r   r  s          r&   -test_categorical_single_grouper_observed_truerG    s    * r~'&//11KC    	
 	
 	
  N &!%#     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)  r)  r)  r)  r)  r)  r)  r)  r)  r)  c           	          t          t          j                  t          d          k    r9|j                            t
          j                            dd                     g d}t          | |d||||           d S )Nr   r   Fr   )r   r   r   r-  r/  r.  r   r   r3  r2  r1  r0  )r=  r   r   )r=  r   r   )r=  r   r   )r=  r   r   )r=  r   r   )r=  r   r   rD  rE  rF  s          r&   .test_categorical_single_grouper_observed_falserI    s    X r~'&//11KC    	
 	
 	
  N* &!%#     r(   zobserved, expected_index)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   r   r   )r   r   r   )r   r   r   )rJ  rK  rL  rM  rN  )r   r   r,   r   r   r   r   r   r   r   r   r   )r  r)  r  r)  r  r)  r  r)  r  r)  r)  r)  c                    |                                  } | d                             d          | d<   | d                             d          | d<   |                     ddg||          }|                    |          }t	          |r||dk             n|t          j        |g d          |	          }	t          d
          D ]@}
|	j        	                    t          |	j        j        |
                   |
          |	_        A|rt          j        ||	           d S |	                    |rdnd          }t          j        ||           d S )Nr   r   r   r+  r   r)  )r   r   r   rT   r   r,   r4  rN   r   r6  )r>  r   r   r   r
   r	   r   rX   r   r7  r   r   r   r    r   r   )r   r   r'  r  r]   r   r
  r   r"   r9  r:  r%   s               r&   "test_categorical_multiple_groupersrP  E  s   n  $$&&L*95<<ZHHL ,[ 9 @ @ L LL				K 8h 
 
 
B __y_11F3;N]=3.//$444
 
 
   O 1XX 
 
 / 5 @ @_29!<==Q !A !
 !
  0
v77777"..!*7 / 
 
 	fh/////r(   c                 R   t          t          j                  t          d          k    r9|j                            t
          j                            dd                     |                                 } | d         	                    d          | d<   | d         	                    d          | d<   | 
                    d||	          }|                    |
          }g d}	t          |t          j        |	g d          |          }
t          dd          D ]@}|
j                            t%          |
j        j        |                   |          |
_        A|rt)          j        ||
           d S |
                    |rdnd          }t)          j        ||           d S )Nr   r   Fr   r   r   r   r   r+  r   r,  r   rT   r   r   r3   r4  rN   r   r6  )r   r9   r   r   r   r   r   r   r>  r   r   r   r
   r	   r   rX   r   r7  r   r   r   r    r   r   r8  s                r&   test_categorical_non_groupersrR    s   0 r~'&//11KC    	
 	
 	
  $$&&L)(3:::FFL ,[ 9 @ @ L LL			i(X		N	NB__y_11F  N $444
 
 
   O 1a[[ 
 
 / 5 @ @_29!<==Q !A !
 !
  0
v77777"..!*7 / 
 
 	fh/////r(   z*normalize, expected_label, expected_valuesr  c                 8   t          g dg dd          }|                    g ddd gd          }|                    d	| 
          }t          dt          j        g dt
                    dg ddg ddg d||i          }t          j        ||           d S )Nr  r   r,   r3   )r   r   )r   rI   r   r   c                     | dk    rdndS )Nr   r5   r7   ra   )r:  s    r&   r   z&test_mixed_groupings.<locals>.<lambda>  s    AFFqq r(   Fr   T)rO   r]   r   )r   r   rI   r(  r  level_2)r7   r7   r5   r   )r   r3   r,   )r   r   r   r9   r   intr   r   )r]   expected_labelr  r!   r   r"   r%   s          r&   test_mixed_groupingsrZ    s     
33	4	4B	YYY%A%ABU	S	SB__$)_<<Frx			555yyyO	
 H &(+++++r(   ztest, columns, expected_namesrepeatabbde)r   Ndr   r   er5  r-   level_1)r   Nr]  r   cr_  c                    t          g dg dg|          }ddg}dt          j        ddgt          j        	          d
g}|                    ||                                          }|r=t          dt          j        ||          d          }t          j
        ||           d S d |D             }t          |          }	d|	d<   |	                    d           t          ||	          }t          j        ||           d S )N)r   r3   rI   r5   r8   )r,   r   r   r7   r*   r   )r   r   r5   r3   rI   r8   )r,   r   r7   r   r   r*   r   r   r   r(  r]  rV  r$  rT   r   r   c                 4    g | ]}t          |          d gz   S )r   )r=   )r   r   s     r&   r   z0test_column_label_duplicates.<locals>.<listcomp>  s$    BBBScaSBBBr(   r_  )r   r9   r   int64r   r   r
   r	   r   r   r    r=   appendr   )
testr   expected_namesr   r!   r
  re   r"   r%   expected_columnss
             r&   test_column_label_duplicatesrh    s9    
OOO%5%5%56	H	H	HB')<=M1a&11137DZZxZ00==??F 0($   
 
 
 	vx00000BBMBBB//'(((]4DEEE
fh/////r(   znormalize, expected_labelc                     t          g dgdd|g                              dd          }d| d}t          j        t          |	          5  |                    | 
           d d d            d S # 1 swxY w Y   d S )NrT  r   r   r   FrV  zColumn label 'z' is duplicate of result columnr   r   )r   r   r   r   r   r   )r]   rY  r   r   s       r&   test_result_label_duplicatesrj  #  s     
III;c>(B	C	C	C	K	Ke 
L 
 
B K>
J
J
JC	z	-	-	- - -
),,,- - - - - - - - - - - - - - - - - -s   A22A69A6c                  @   t          dddgi          } |                     t          j        ddgt          j                            }|                                }t          dgt          j        ddggd dg          d          }t          j
        ||           d S )Nr   r   r(  r,   rT   r   r   )r   r   r9   r   rc  r   r
   r	   r   r   r    )r!   r   r"   r%   s       r&   test_ambiguous_groupingrl  4  s    	C!Q=	!	!B	BHaV28444	5	5B__F	
:)Aq6(4+FFFW  H 68,,,,,r(   c                      t          g dg ddg d          } d}t          j        t          |          5  |                     d                              dg	           d d d            d S # 1 swxY w Y   d S )
Nr   r   r`  r   yrp  c1c2r   r   r   r   z;Keys {'c1'} in subset cannot be in the groupby column keys.r   rr  r   r   r   r   r   r   r   r!   r   s     r&   "test_subset_overlaps_gb_key_raisesrw  ?  s    	///AA	S	S	SB
GC	z	-	-	- 5 5


4%%dV%4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5   +A00A47A4c                      t          g dg ddg d          } d}t          j        t          |          5  |                     d                              d	g
           d d d            d S # 1 swxY w Y   d S )Nrn  ro  rq  rt  r   z4Keys {'c3'} in subset do not exist in the DataFrame.r   rr  c3r   ru  rv  s     r&   !test_subset_doesnt_exist_in_framer{  G  s    	///AA	S	S	SB
@C	z	-	-	- 5 5


4%%dV%4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5rx  c                     t          g dg ddg d          } |                     d                              dg	          }t          d
dgt	          j        dd
gddggd dg          d          }t          j        ||           d S )Nrn  ro  rq  rt  r   r   r4  rs  r   r   r,   r   rp  rT   r   r   r   r   r   r
   r	   rZ   r   r    r!   r"   r%   s      r&   test_subsetr  O  s    	///AA	S	S	SBZZaZ  --dV-<<F	
A$q!fsCj%9$NNN  H
 68,,,,,r(   c            	      *   t          g dg dg dgg dg d          } |                     d                              dg	          }t          d
dgt	          j        dd
gddgddggg d          d          }t          j        ||           d S )N)r   r   r   )r   rp  rp  rt  )rr  rs  rs  )r   r   r   r4  rs  r   r   r,   r   rp  )Nrs  rs  rT   r   r   r}  r~  s      r&   test_subset_duplicate_columnsr  [  s    		///???;ii"""
 
 
B
 ZZaZ  --dV-<<F	
A$Vc3Z#s,4F4F4F
 
 
   H 68,,,,,r(   c                    t          g dg dd                              dg          }t          |d         | d          |d<   |                    t	          d	d
                    }|                                }t          g d|           }|d                                         }t          ||g dgg dt          d          g dgg d          }t          d|d          }t          j        ||           d S )Nrm   rn   rs   r3   rt   rv   rw   ry   rz   r{   )z
2019-08-06z
2019-08-07z
2019-08-09z
2019-08-10)rk   )ro   rp   rq   rr   )r   r   r   r,   r,   r3   r   )r   r   r   r,   r,   r3   )ry   rt   ru   r   r   r   r   )r   r~   r   r   r   r   uniquer	   rX   r
   r   r    )rk   r!   r   r"   dates
timestampsr   r%   s           r&   test_value_counts_time_grouperr  m  sE    
   WVV	
 	

 
 dA3ii  !KcDDDBzN	G:666	7	7B__F@@@c  E K''))Jz#H#H#HI!!!588-?-?-?@///  E
 au7333H68,,,,,r(   c                      t          g dg dg dd          } |                     ddgdd          }|d	                                         }t          g dg dg ddd
          }t          j        ||           d S )N)r   r   r   )r   r   r]  rn  rT  r   r,   Fr   r3   )r   r,   r3   r   )r   r   r   r   r   )r!   r   r"   r%   s       r&   !test_value_counts_integer_columnsr    s    	???OO	P	PB	QFU	7	7BU!!FOOOOOaPP H &(+++++r(   )W__doc__	itertoolsr   numpyr9   r   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   r   r   r	   r
   r   r   pandas._testing_testingr   pandas.util.versionr   r'   rF   binnedrL   rA   rB   rC   r!   arangemaxr^   re   kr   rd  r   slowparametrizerj   r   r   r   r   r   fixturer   r   r   r   r   r   objectparam
skip_if_nor   r  r  r  r  r#  rZ   r?   r&  r   rc  r;  rB  rG  rI  rP  rR  rZ  r=   rh  rj  rl  rw  r{  r  r  r  r  ra   r(   r&   <module>r     s               ) ) ) ) ) ) ) ) )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
       ' ' ' ' ' '- - -*  0 
 ' 'IW-- ' '1WY1%%YRYq##aE"9"9A"=qAAAeeU^+GD$'' 	' 	'DAqMM2q!Q*+++JJ!~~a~~!~~&&&&	'	' /SAA4-00*-ACS,TUU$//tUm44D%=11B B 21 54 0/ VU 10 BA B< u..- - /.-< c3Z$ABB	- 	- CB	- c3Z$ABB- - CB-- - -6- - -(     , , ,- - -@V V V $C$C$CDD*-ACS,TUU    dE]334-00E4 E4 10 43  VU EDE4P ,MBM)4L4LMMM&mbmI.F.FGGG  tUm44I	oooH	uoooH	t___oooG , ,  54 ",D    E	eWiii1R1R1RS	tUGYYY0Q0Q0QR	ueWiii1R1R1RS---	
	  ; ;!  ;0 	 	 	 @ '''===		
 
(((*H*H*HI	u(((*L*L*LM	tYYY0
 - - -.    + F"J"???:::  	
 LLJE1#JJE22233E8Wbf566
 $||\\\<<<@:::  	
 4 *-=?S,TUU; ; VU5 6;0 eT]33eT]33$ BH999JJJ	
 BHSSSTT	
 70 70  43 43"70t 0  0  0F dE]33$ BH999JJJ	
 BHSSSTT	
 ' '  43 'T dE]33$ BHFFFbh  	
 BH   	
"% %L- -M% % 43N-` dE]33   	
$   		
% @ $ BH999JJJ	
 BHQQQRR		
  "0 "0! A  43b"0J eT]33eT]33$ BH999JJJ	
 BHSSSTT		
  90 90!  43 43$90x 0	#	|___- , , ," #	44=="A"A"AB	$$v,,),.S.S.ST  eT]330 0 43 04  - - -- - -5 5 55 5 5	- 	- 	-- - -$ u..- - /.-B, , , , ,r(   