
    Eg                        d 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ej        j        ej                            ddd	g          ej                            d
ddg          ej                            dddg          ej                            dddddgge          ej                            ddddgg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& Z"ej#        d'             Z$d( Z%d) Z&d* Z'd+ Z(ej                            d,g d-          ej                            dddg          ej                            d.g d/          ej                            d0dd	g          ej                            d1dd	g          d2                                                             Z)ej                            d3e* ej+        d4 ej,        d5          6           ej+        d7 ej,        d5          6          g          ej                            d8dd	g          ej                            d9d	dg d:g d;g d<fdd	g d=g d>g d?fddg d@g dAg dBfg          dC                                     Z-ej#        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j#        dP             Z0e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             Z1ej#        d[             Z2ej                            d\dd]d]g ej3        g d^g d_`          fd	g da e ed]g           eg db           edcddej4        g          gg deg dfg dggg d_h          fg          ej                            dddg          di                         Z5ej                            d0d	dg          ej                            djd	dg          ej                            dkd	dF ej6        g dlej7        m          fddM ej6        g dn          fg          do                                     Z8dp Z9ej                            d0dd	g          ej                            dkd	dF ej6        g dlej7        m          fddM ej6        g dn          fg          dq                         Z:ej                            d0dd	g          ej                            dkd	dF ej6        g drej7        m          fddM ej6        g ds          fg          dt                         Z;ej                            d0dd	g          ej                            dud	g dvfdg dwfg          ej                            dkd	dF ej6        g dxej7        m          fddM ej6        g dy          fg          dz                                     Z<ej                            d0d	dg          ej                            djd	dg          ej                            dkd	dF ej6        g dlej7        m          fddM ej6        g dn          fg          d{                                     Z=ej                            d|d	dFg d}fddMg dYfg          d~             Z>ej                            dd e?d          g dfd e?d          dgz   g dfg          ej                            d0d	dg          d                         Z@ej                            dddg          d             ZAd ZBd ZCd ZDd ZEd ZFej                            ddd	g          d             ZGd ZHej                            ddd	g          ej                            d8dd	g          d                         ZIej                            ddd	g          ej                            d8dd	g          d                         ZJd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
    N)	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        c/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/groupby/methods/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3rdr/   float   r-         r.            	   )r
   r   nprandomdefault_rngchoicelistintegersr   nanloc)	seed_nansnmdaysframes        r%   seed_dfrE   0   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'   r@   TFnum_rowsr)   2   max_int      keysr-   r.   )idsbinsisortznormalize, name)T
proportion)Fr   sort	ascendingdropnac                    t          | ||          }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_arraysrV   )r    arrs     r%   rebuild_indexz7test_series_groupby_value_counts.<locals>.rebuild_indexa   sK    3rx0%8H2I2IJJKK)#RX^DDD	r'   )	normalizerP   rQ   rR   rM   rP   r/    )rE   r   r   applyr	   r   rV   renamerW   r   r   
sort_index)r@   rF   rH   rK   rM   rN   r^   r   rP   rQ   rR   r    r]   kwargsgrleftrights                    r%    test_series_groupby_value_countsri   G   s!   0 
Hg	.	.B    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]applern   bananaro   orangerp   pear	TimestampFoodr2   rs   srj   unitDatetime1Dfreqkeyrt   r   )r   dropr   r   r   r   rd   rb   r	   r   rV   rc   r   r   )rj   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   rU   )r   r   r   r	   r   r   r[   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   rY   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   r[   r8   arrayr   r   r   )ru   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codesrV   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    r4|                    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   rU   rO   r   )r   r8   __version__applymarkerr   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^   rP   rQ   )r   )r    rK   r^   rP   rQ   s        r%   _frame_value_countsr     s!    d8  949 UUUr'   r   columnr   functionzsort, ascending))FN)TT)TFas_indexrD   c	                 z    t          t          j                  t          d          k    r:|r8|r6|r4|                    t          j                            dd                     d d         j         fdd|         }	                     |	|          }
|
d	d
g         	                    |||          }|r4|dk    rt          nd }d}t          j        ||          5  |
                    t          d	d
g|||          }d d d            n# 1 swxY w Y   |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          }t5          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>D  s    l95a8D@ r'   r   )byr   r   r   r   r   z7DataFrameGroupBy.apply operated on the grouping columnsr   rO   r   r   r   r   level_0r   r   r   -bothr   r+   )r   r8   r   r   r   r   r   valuesr   r   DeprecationWarningr   r   rb   r   r   reset_indexrc   whereassert_frame_equalr   r   to_framestrsplitgetr   r   insert)r   r   r^   r   rP   rQ   r   rD   r   r   r   r!   warnr   r$   index_frames   `               r%   $test_against_frame_and_seriesgroupbyr      sH   . r~'&//11e111KC    	
 	
 	
 i(/@@@@
 
 	
B 
		h		7	7B;'(55$) 6  F  )4%,%8%8!!dG'C888 	 	xx#h%<iy H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
  	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3s   !!DDDr   zstring[pyarrow_numpy]pyarrow)marksstring[pyarrow]r^   zCsort, ascending, expected_rows, expected_count, expected_group_size)r   r   r+   r2      r   )r   r2   r   r2   r   )r2   r   r   r+   r   )r+   r   r   r   r   )r2   r   r2   r   r   )r   r   r+   r   r2   )r   r   r   r   r+   )r   r2   r   r   r2   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   rP   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'   rO   r   r   )r   r   r   r   r   convert_dtypesr   r   )r   r^   rP   rQ   expected_rowsexpected_countexpected_group_sizer   r   r!   r$   r   s   `          @r%   test_compoundr   w  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   rO   )r   r   r   c                 0   |                      |||          }t          |t          j        |g d          |          }t	          j        ||           |                     d                               |||          }	t	          j        |	|           d S )N)rP   rQ   r^   r   rU   r   r|   )r   r	   r   r[   r   r   r   )
r  rP   rQ   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   r2   r+   rI   r6   r4   )r   r   r   D)r8   r>   r   )rA   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   r2   rI   r4   r   r6   r+   r   )	r   r         ?r   r   r   r   r  r  )r   r   r2   rI   r+   r   )r   r   r  r  r  r  )r   r   rI   r4   r   r6   )r   r   r   r   r   r   )r   r   rI   )r   r   r  c                     t          t          j                  t          d          k    r6|s4|                    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   )rR   T)r^   rP   rR   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'   rO   r   )r   r8   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_indexr   )r   r   )r  r  )r   r  r!  rU   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)rR   r^   r   r|   )r   r	   r0   r   r   r   r   )	r%  rR   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    r4|                    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   rU   r   r2   levelrO   r   r   )r   r8   r   r   r   r   r   r   r   r   r   r   r	   rY   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=  J  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   rU   r   r2   r   r6  r8  )copyr   r  add_categoriesr   r   r	   r   r   rY   r   r   r   set_categoriesr   r9  r   r   r   r   )r   r   r)  r  r^   r   r  r   r!   r;  r<  index_levelr$   s                r%   !assert_categorical_single_grouperrD    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    r4|                    t          j                            dd                     g d}t          | |d||||           d S )Nr   r   Fr   r.  Tr   r   r)  r  r^   r   r  r   r8   r   r   r   r   r   rD  r   r   r^   r   r  r   r  s          r%   -test_categorical_single_grouper_observed_truerI    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    r4|                    t          j                            dd                     g d}t          | |d||||           d S )Nr   r   Fr   )r   r   r   r/  r0  r1  r   r   r2  r3  r4  r5  )r?  r   r   )r?  r   r   )r?  r   r   )r?  r   r   )r?  r   r   )r?  r   r   rF  rG  rH  s          r%   .test_categorical_single_grouper_observed_falserK    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   )rL  rM  rN  rO  rP  )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   rU   r   r+   r6  rO   r   r8  )r@  r   r   r   r	   r   r   rY   r   r9  r   r   r   r   r   r   )r   r   r)  r  r^   r   r  r   r!   r;  r<  r$   s               r%   "test_categorical_multiple_groupersrR  I  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                 H   t          t          j                  t          d          k    r4|                    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   rU   r   r   r2   r6  rO   r   r8  )r   r8   r   r   r   r   r   r@  r   r   r   r	   r   r   rY   r   r9  r   r   r   r   r   r   r:  s                r%   test_categorical_non_groupersrT    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+   r2   )r   r   )r   rI   r   r   c                     | dk    rdndS )Nr   r4   r6   ra   )r<  s    r%   r   z&test_mixed_groupings.<locals>.<lambda>  s    AFFqq r'   Fr   TrP   r^   r   )r   r   rI   r*  r	  level_2)r6   r6   r4   r   )r   r2   r+   )r   r   r   r8   r   intr   r   )r^   expected_labelr  r    r   r!   r$   s          r%   test_mixed_groupingsr]    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   er7  r,   level_1)r   Nr`  r   crb  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   r2   rI   r4   r7   )r+   r   r   r6   r)   r   )r   r   r4   r2   rI   r7   )r+   r   r6   r   r   r)   r   r   r   r*  r`  rX  r&  rU   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'   rb  )r   r8   r   int64r   r   r	   r   r   r   r   r<   appendr   )
testr   expected_namesr   r    r  rK   r!   r$   expected_columnss
             r%   test_column_label_duplicatesrk    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 )NrV  r   r   r   FrX  zColumn label 'z' is duplicate of result columnr   r   )r   r   r   r   r   r   )r^   r\  r   r   s       r%   test_result_label_duplicatesrm  '  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+   rU   r   r   )r   r   r8   r   rf  r   r	   r   r   r   r   )r    r   r!   r$   s       r%   test_ambiguous_groupingro  8  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   rc  r   yrs  c1c2r   r   r   r   z;Keys {'c1'} in subset cannot be in the groupby column keys.r   ru  r   r   r   r   r   r   r   r    r   s     r%   "test_subset_overlaps_gb_key_raisesrz  C  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 )Nrq  rr  rt  rw  r   z4Keys {'c3'} in subset do not exist in the DataFrame.r   ru  c3r   rx  ry  s     r%   !test_subset_doesnt_exist_in_framer~  K  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 5r{  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 )Nrq  rr  rt  rw  r   r   r6  rv  r   r   r+   r   rs  rU   r   r   r   r   r   r	   r   r[   r   r   r    r!   r$   s      r%   test_subsetr  S  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   rs  rs  rw  )ru  rv  rv  )r   r   r   r6  rv  r   r   r+   r   rs  )Nrv  rv  rU   r   r   r  r  s      r%   test_subset_duplicate_columnsr  _  s    		///???;ii"""
 
 
B
 ZZaZ  --dV-<<F	
A$Vc3Z#s,4F4F4F
 
 
   H 68,,,,,r'   c                 X   t          g dg dd                              dg          }t          |d         | d          j                            |          |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 )Nrl   rm   rr   r2   rs   ru   rv   rx   ry   rz   )z
2019-08-06z
2019-08-07z
2019-08-09z
2019-08-10)rj   )rn   ro   rp   rq   )r   r   r   r+   r+   r2   r   )r   r   r   r+   r+   r2   )rx   rs   rt   r   r   r   r   )r   r}   r   dtas_unitr   r   r   uniquer   rY   r	   r   r   )	rj   rw   r    r   r!   dates
timestampsr   r$   s	            r%   test_value_counts_time_grouperr  q  se    
   WVV	
 	

 
 dA3ii  !KcDDDGOOPTUUBzN	G:666	7	7B__F@@@c  gdmm 
 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`  rq  rV  r   r+   Fr   r2   )r   r+   r2   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'   vc_sortc                    t          g dg dd          }|                    d|           }|                    ||          }|rg d}ng d}t          d	d
gddggg dg dgddg          }t	          |||rdnd          }| r|rg d}	n| r|sg d}	n| s|rg d}	ng d}	|                    |	          }t          j        ||           d S )Nr+   r   r   r   r2   r   r2   r2   r   r   r   r_   rY  )UUUUUU?UUUUUU?r  r
  r   r+   r2   r   )r   r   r   )r   r   r   r   r   rO   r   r   )r   r   r+   )r   r+   r   )r+   r   r   )r   r   r   r   r	   taker   r   )
rP   r  r^   r    r   r!   r   r   r$   takers
             r%   test_value_counts_sortr    sB    
,,,77	8	8B	Cd	#	#B__'Y_??F $$$AA			999'=c1X  E fE	0VwWWWH  			 g 		 g 				}}U##H68,,,,,r'   c           	         t          g dg ddd          }|                    d| d          }|                    ||	          }|rg d
}ng d}|rdnd}t          dt          g d          dt          g d          ||i                              ddg          |         }| r|rg d}	n| r|sg d}	n| s|rg d}	ng d}	|                    |	          }t          j        ||           d S )Nr  r  r  r   r*  r   T)rP   r)  rY  )r  r  r  r+  )r+   r   r   r   rO   r   )r   r   r+   r+   r   )r2   r   r2   r   )r   r   r+   r2   )r   r+   r   r2   )r+   r2   r   r   )r   r   r   r   	set_indexr  r   r   )
rP   r  r^   r    r   r!   r   r   r$   r  s
             r%   "test_value_counts_sort_categoricalr    sV    
,,,77z	J	J	JB	CdT	2	2B__'Y_??F )))$1<<'D\\\**{<<<((&	
  ia$ H   	 g  g }}U##H68,,,,,r'   )K__doc__numpyr8   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&   rE   r   slowparametrizereprri   r   r   r   r   r   fixturer   r   r   r   r   r   objectparam
skip_if_nor   r  r  r  r  r%  r[   r>   r(  r   rf  r=  rD  rI  rK  rR  rT  r]  r<   rk  rm  ro  rz  r~  r  r  r  r  r  r  ra   r'   r%   <module>r     s         ) ) ) ) ) ) ) ) )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
       ' ' ' ' ' '- - -(  . tUm44b"X..QG,,%!?TJJ$AT::4-00*-ACS,TUU$//tUm44D%=11'B 'B 21 54 0/ VU 10 ;: KJ -, /. 54 'BT 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H4 H4 10 43  VU EDH4V ,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, , , T5M22tUm44- - 54 32-6 T5M22tUm44- - 54 32- - -r'   