
    Owg                        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j2                  j4                  ej2                  j7                  ddd	g      ej2                  j7                  d
ddg      ej2                  j7                  dddg      ej2                  j7                  dddddgge      ej2                  j7                  ddddgge      ej2                  j7                  ddd	g      ej2                  j7                  dddg      ej2                  j7                  ddd	g      ej2                  j7                  ddd	g      ej2                  j7                  ddd	g      d                                                                              Zej2                  j7                  ddd	g      d        Zej2                  j7                  dd d!gg d"g      d#        Zej2                  j7                  dd d!gg d"g      d$        Z d% Z!d& Z"ejF                  d'        Z$d( Z%d) Z&d* Z'd+ Z(ej2                  j7                  d,g d-      ej2                  j7                  dddg      ej2                  j7                  d.g d/      ej2                  j7                  d0dd	g      ej2                  j7                  d1dd	g      d2                                    Z)ej2                  j7                  d3e* ejV                  d4 ejX                  d5      6       ejV                  d7 ejX                  d5      6      g      ej2                  j7                  d8dd	g      ej2                  j7                  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jF                  dD        Z.ej2                  j7                  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jF                  dP        Z0ej2                  j7                  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jF                  d[        Z2ej2                  j7                  d\dd]d]g ejf                  g d^g d_`      fd	g da e ed]g       eg db       edcddejh                  g      gg deg dfg dggg d_h      fg      ej2                  j7                  dddg      di               Z5ej2                  j7                  d0d	dg      ej2                  j7                  djd	dg      ej2                  j7                  dkd	dF ejl                  g dlejn                  m      fddM ejl                  g dn      fg      do                      Z8dp Z9ej2                  j7                  d0dd	g      ej2                  j7                  dkd	dF ejl                  g dlejn                  m      fddM ejl                  g dn      fg      dq               Z:ej2                  j7                  d0dd	g      ej2                  j7                  dkd	dF ejl                  g drejn                  m      fddM ejl                  g ds      fg      dt               Z;ej2                  j7                  d0dd	g      ej2                  j7                  dud	g dvfdg dwfg      ej2                  j7                  dkd	dF ejl                  g dxejn                  m      fddM ejl                  g dy      fg      dz                      Z<ej2                  j7                  d0d	dg      ej2                  j7                  djd	dg      ej2                  j7                  dkd	dF ejl                  g dlejn                  m      fddM ejl                  g dn      fg      d{                      Z=ej2                  j7                  d|d	dFg d}fddMg dYfg      d~        Z>ej2                  j7                  dd e?d      g dfd e?d      dgz   g dfg      ej2                  j7                  d0d	dg      d               Z@ej2                  j7                  dddg      d        ZAd ZBd ZCd ZDd ZEd ZFej2                  j7                  ddd	g      d        ZGd ZHej2                  j7                  ddd	g      ej2                  j7                  d8dd	g      d               ZIej2                  j7                  ddd	g      ej2                  j7                  d8dd	g      d               ZJy)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   j                  d      | d<   | j                  d      d   j                         }t        ddggddg      }|d   j                  d      |d<   t	        j
                  |      }t        dg|d	
      }t        j                  ||       y )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        e/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/groupby/methods/test_value_counts.py.tests_value_counts_index_names_category_columnr&      s    	jv	

B h<&&z2BxLZZ	"8,99;F x 01Ix;PQN-h7>>zJN8''7Kqc7;H68,    c           	         t        dd      }t        t        j                  j	                  d      j                  t        d      |      t        j                  j	                  d      j                  ||      t        j                  j	                  d      j                  d|dz   |      d      }| r|d   j                  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   s2   lB/D99((+224<C99((+224;99((+44QAqA	
E U|**7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}|j                  ||      } |d   j                  di |}|j                  ||      } |d   j                  t        j                  fi |}|j
                  j                  d d dgz   |j
                  _        |j                  |      }t        |||f      \  }}t        j                  |j                         |j                                y )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   sM    3rxx00%8H8H2IJK))#RXX^^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BuIOOF//:6:E))#2.%8EKKLLE mdE]3KD%4??,e.>.>.@Ar'   utcc                    t        g dg dd      j                  dg      }t        |d   | d      |d<   |j                  t	        d	d
            }|d   j                         j                         }|d   j                  t        j
                        j                         }|j                  j                  |j                  _
        |j                  d      }t        j                  ||       y )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	

 dA3i  !KcDBzN
**W$J7
8C [%%'224F6{  !4!45@@BH!<<--HNNw'H68,r'   r   AB)r   r   Cc                    t        |       }|j                  | d d       }|| d      j                         }t        g |j                  d      }t        j                  g gt        |       z  |       |_        t        j                  ||       y )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      sz     
7	#B
**WSb\
"C**,Fb7;H++RD3w<,?wOHN68,r'   c                     t        t        t        |             g|       }|j                  | d d       }|| d      j	                         }|j	                         }t        j                  ||       y )N)datar   r`   )r   rY   r   r   r   r   r   r   s        r%   (test_series_groupby_value_counts_one_rowr      sc     
s7|,-w	?B
**WSb\
"C**,F H68,r'   c                  8   t        t        dgddg            } | j                  dg      j                         }t        ddgt	        j
                  t        j                  ddg      t        ddgddgdd      g      d	
      }t        j                  ||       y )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9AYYs^((*FV$$!Q  #JC:uJ
 H$ 68,r'   c                     t        g dg dg dd      } | j                  ddgd      d	   }|j                  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                  ||       y )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H;	

B 
Y)	6{	CB__%_(Ftvx02KLA0E
 oUAH68,r'   c                  ,    t        g dg dg dd      S )Nr   r   r   r   r   ra   r'   r%   education_dfr      s    JH;	
 r'   c                    d}t        j                  t        |      5  | j                  dd      }d d d        t	        j
                  t        d      5  j                          d d d        y # 1 sw Y   >xY w# 1 sw Y   y xY w)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      st    
7C		#	#M	= 5!!)!!45	*&	9 
 5 5 s   A/A;/A8;Bc                     | j                  d      }t        j                  t        d      5  |j	                  dg       d d d        y # 1 sw Y   y xY w)Nr   subsetr   r   )r   r   r   
ValueErrorr   )r   r   s     r%   test_bad_subsetr      sE    			i	(B	z	2 ,
	{+, , ,s   A

Ac                 x   t        t        j                        t        d      k\  r0|j                  t        j
                  j                  dd             | j                  d      ddg   j                  d	      }t        g d
t        j                  g dg d      d      }t        j                  ||       y )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KKC   	
 !!),h-DERR S F ($$ 5	
 H 68,r'   c                 0    | |   j                  |||      S )Nr^   rP   rQ   )r   )r    rK   r^   rP   rQ   s        r%   _frame_value_countsr     s    d8  949 UUr'   r   columnr   functionzsort, ascending))FN)TT)TFas_indexrD   c	                     t        t        j                        t        d      k\  r6|r4|r2|r0|j                  t        j
                  j                  dd             d d   j                   fdd|   }	 j                  |	|      }
|
d	d
g   j                  |||      }|r	|dk(  rt        nd }d}t        j                  ||      5  |
j                  t        d	d
g|||      }d d d        |rt        j                  |       y |rdnd}j!                         j#                  d|id      }|dk(  r3|j#                  ddid      }t        j$                  |d   dd      |d<   n.|dk(  r|d   dk(  |d<   nt        j$                  |d   dd      |d<   t        j&                  ||       y  d	   dz    d
   z    d<   |
d   j                  |||      }||_        |r|j*                  j-                  d      }|d   j.                  j1                  d      j.                  j3                  d      |d	<   |d   j.                  j1                  d      j.                  j3                  d      |d
<   |d= |j#                  dd id      }t5        j6                  |      |_        t        j                  ||       y |j9                  dd	|d   j.                  j1                  d      j.                  j3                  d             |j9                  dd
|d   j.                  j1                  d      j.                  j3                  d             |d= t        j&                  ||       y # 1 sw Y   }xY w)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      se   . r~~'&/1eKKC   	
 i(//@
 	
B 
		h		7B;'(55$) 6 F %,%8!dG''C8 	xx#h%<iyH	
 ""684#,<'D++-44aYQ4GH("#??Iy+A?J&(hhx	/BD$&O#J&&.y&9Q&>#&(hhx	/BD$&O#!!&(3  ,H5;l;>WWVf:**di + 
 "..111>K$/$7$;$;$A$A#$F$J$J$N$Nq$QK!'26':'>'>'D'DS'I'M'M'Q'QRS'TK$F#%,,aYQ,?K'22;?HN""684OOAx&)9)=)=)C)CC)H)L)L)P)PQR)STOOA{HV,<,@,@,F,Fs,K,O,O,S,STU,VW !!&(3K	 	s   M""M,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                 L   | j                  |      } | j                  j                  |      | _        | j                  ddgdd      }|d   j                  |||      }	t	               }
dD ]L  }|D cg c]
  }| |   |    c}|
|<   |
j                  |      }
|
j                  j                  |      |
_        N |r.||
d<   |
dxx   |z  cc<   |d	k(  r7|
d   j                         |
d<   n ||
d
<   |d	k(  r|
d
   j                         |
d
<   t        j                  |	|
       y c c}w )Nr   r   Fr   rP   r   r   r   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   rows                r%   test_compoundr   w  sI   6  &&u-L'//66u=L			y(3e%		PB_))$) * F {H4 :ANO#L05O??5)#++2259: !/"55%%%-l%;%J%J%LH\"*%% ( 1 @ @ BHW&(+ Ps   2D!c                  4    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'   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                    | j                  |||      }t        |t        j                  |g d      |      }t	        j
                  ||       | j                  d      j                  |||      }	t	        j
                  |	|       y )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
 H <2%--e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    su    
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\  r2|s0|j                  t        j
                  j                  dd             | j                  ddg|      }|j                  dd|	      }t               }| j                  D ]  }	|D 
cg c]
  }
| |	   |
    c}
||	<    t        j                  |      }t        ||d
      }t        j                  ||       y c c}
w )Nr   r   Fr   r   r   )rR   T)r^   rP   rR   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   r$   s                r%   test_dropna_combinationsr    s    " r~~'&/1,KKC   	
 
		3*\		:B__t$|_LFkG"" K<IJS8F+C0JK!!'*E?%lKH68, Ks   C/c                 0    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                    | j                  ||      }t        |||      }|r|t        t        |            z  }t	        j
                  ||       | j                  d      j                  ||      }t	        j
                  ||       y )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WLH
 E#m,--<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\  r0|j                  t        j
                  j                  dd             | j                  d      j                  d||      }|j                  |      }t        j                  g d	g d
      }	t        ||	|      }
t        d      D ]D  }|
j                  j                  t!        |
j                  j"                  |         |      |
_        F |rt%        j&                  ||
       y |
j)                  |rdnd      }t%        j*                  ||       y )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_categoriesr9  J  sE   , r~~'&/1KKC   	
 
		Z	(	0	0Hx 
1 
B __y_1F++	
 1N$ O
 1X 
 / 5 5 @ @_2299!<=Q !A !


 
v7"..!* / 
 	fh/r'   c                    | j                         j                  d      } | d   j                  j                  dg      | d<   | j	                  d||      }|j                  |      }t        |t        j                  |g d      |      }	t        d	      D ]s  }
t        |	j                  j                  |
         }|
d
k(  r(|j                  | d   j                  j                        }|	j                  j                  ||
      |	_        u |rt!        j"                  ||	       y |	j%                  |      }t!        j&                  ||       y )Nr   r   ASIAr)  r   r   rU   r   r2   r   r2  r4  )copyr   r   add_categoriesr   r   r	   r   r   rY   r   r   r   set_categoriesr   r5  r   r   r   r   )r   r   r%  r
  r^   r   r	  r   r!   r7  r8  index_levelr$   s                r%   !assert_categorical_single_grouperr@    sD     $$&--j9L +9599HH&RL			i(X		NB__y_1F$$4
 O 1X W&'<'<'C'CA'FG6%44Y'++66K !0 5 5 @ @TU @ VW 
v7"..D.9
fh/r'   c           	          t        t        j                        t        d      k\  r0|j                  t        j
                  j                  dd             g d}t        | |d||||       y )Nr   r   Fr   r*  Tr   r   r%  r
  r^   r   r	  r   r8   r   r   r   r   r   r@  r   r   r^   r   r	  r   r
  s          r%   -test_categorical_single_grouper_observed_truerE    so    * r~~'&/1KK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\  r0|j                  t        j
                  j                  dd             g d}t        | |d||||       y )Nr   r   Fr   )r   r   r   r+  r,  r-  r   r   r.  r/  r0  r1  )r;  r   r   )r;  r   r   )r;  r   r   )r;  r   r   )r;  r   r   )r;  r   r   rB  rC  rD  s          r%   .test_categorical_single_grouper_observed_falserG    sp    X r~~'&/1KK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   )rH  rI  rJ  rK  rL  )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                 \   | j                         } | d   j                  d      | d<   | d   j                  d      | d<   | j                  ddg||      }|j                  |      }t	        |r||dkD     n|t        j                  |g d      |	      }	t        d
      D ]D  }
|	j                  j                  t        |	j                  j                  |
         |
      |	_        F |rt        j                  ||	       y |	j                  |rdnd      }t        j                  ||       y )Nr   r   r   r)  r   r'  )r   r   r   rU   r   r+   r2  rO   r   r4  )r<  r   r   r   r	   r   r   rY   r   r5  r   r   r   r   r   r   )r   r   r%  r
  r^   r   r	  r   r!   r7  r8  r$   s               r%   "test_categorical_multiple_groupersrN  I  s@   n  $$&L*95<<ZHL ,[ 9 @ @ LL				K 8h 
 
B __y_1F3;]=3./$$4
 O 1X 
 / 5 5 @ @_2299!<=Q !A !


 
v7"..!* / 
 	fh/r'   c                    t        t        j                        t        d      k\  r0|j                  t        j
                  j                  dd             | j                         } | d   j                  d      | d<   | d   j                  d      | d<   | j                  d||	      }|j                  |
      }g d}	t        |t        j                  |	g d      |      }
t        dd      D ]D  }|
j                  j!                  t#        |
j                  j$                  |         |      |
_        F |rt'        j(                  ||
       y |
j+                  |rdnd      }t'        j,                  ||       y )Nr   r   Fr   r   r   r   r   r)  r   r*  r   rU   r   r   r2   r2  rO   r   r4  )r   r8   r   r   r   r   r   r<  r   r   r   r	   r   r   rY   r   r5  r   r   r   r   r   r   r6  s                r%   test_categorical_non_groupersrP    sw   0 r~~'&/1KKC   	
  $$&L)(3:::FL ,[ 9 @ @ LL			i(X		NB__y_1FN $$4
 O 1a[ 
 / 5 5 @ @_2299!<=Q !A !


 
v7"..!* / 
 	fh/r'   z*normalize, expected_label, expected_valuesr  c                    t        g dg dd      }|j                  g ddd gd      }|j                  d	| 
      }t        dt        j                  g dt
              dg ddg ddg d||i      }t        j                  ||       y )Nr  r   r+   r2   )r   r   )r   rI   r   r   c                     | dk(  rdS dS )Nr   r4   r6   ra   )r8  s    r%   r   z&test_mixed_groupings.<locals>.<lambda>  s    AFq  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_groupingsrY    s     
3	4B	Y%ABU	SB__$)_<Frxx	5yO	
H &(+r'   ztest, columns, expected_namesrepeatabbde)r   Ndr   r   er3  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}|j	                  ||      j                         }|r:t        dt        j                  ||      d      }t        j                  ||       y |D 	cg c]  }	t        |	      dgz    }}	t        |      }
d|
d<   |
j                  d       t        ||
      }t        j                  ||       y c c}	w )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\  rT  r"  rU   r   r   r^  )r   r8   r   int64r   r   r	   r   r   r   r   r<   appendr   )testr   expected_namesr   r    r	  rK   r!   r$   r   expected_columnss              r%   test_column_label_duplicatesrf    s     
O%56	HB')<=M1a&137DZZxZ0==?F(($ 
 	vx04ABScaSBB/'(]4DE
fh/ Cs   #D znormalize, expected_labelc                     t        g dgdd|g      j                  dd      }d| d}t        j                  t        |	      5  |j                  | 
       d d d        y # 1 sw Y   y xY w)NrR  r   r   r   FrT  zColumn label 'z' is duplicate of result columnr   r   )r   r   r   r   r   r   )r^   rX  r   r   s       r%   test_result_label_duplicatesrh  '  sr     
I;c>(B	C	K	Ke 
L 
B >**I
JC	z	- -
),- - -s   A""A+c                  ,   t        dddgi      } | j                  t        j                  ddgt        j                              }|j                         }t        dgt        j                  ddggd dg      d      }t        j                  ||       y )Nr   r   r&  r+   rU   r   r   )r   r   r8   r   ra  r   r	   r   r   r   r   )r    r   r!   r$   s       r%   test_ambiguous_groupingrj  8  s}    	C!Q=	!B	BHHaV2884	5B__F	
:))Aq6(4+FWH 68,r'   c                      t        g dg ddg d      } d}t        j                  t        |      5  | j	                  d      j                  dg	       d d d        y # 1 sw Y   y xY w)
Nr   r   r_  r   yrn  c1c2r   r   r   r   z;Keys {'c1'} in subset cannot be in the groupby column keys.r   rp  r   r   r   r   r   r   r   r    r   s     r%   "test_subset_overlaps_gb_key_raisesru  C  sW    	/A	SB
GC	z	- 5


4%%dV%45 5 5   #A  A)c                      t        g dg ddg d      } d}t        j                  t        |      5  | j	                  d      j                  d	g
       d d d        y # 1 sw Y   y xY w)Nrl  rm  ro  rr  r   z4Keys {'c3'} in subset do not exist in the DataFrame.r   rp  c3r   rs  rt  s     r%   !test_subset_doesnt_exist_in_framery  K  sW    	/A	SB
@C	z	- 5


4%%dV%45 5 5rv  c                      t        g dg ddg d      } | j                  d      j                  dg	      }t        d
dgt	        j
                  dd
gddggd dg      d      }t        j                  ||       y )Nrl  rm  ro  rr  r   r   r2  rq  r   r   r+   r   rn  rU   r   r   r   r   r   r	   r   r[   r   r   r    r!   r$   s      r%   test_subsetr}  S  sz    	/A	SBZZaZ --dV-<F	
A$$q!fsCj%9$NH
 68,r'   c            	         t        g dg dg dgg dg d      } | j                  d      j                  dg	      }t        d
dgt	        j
                  dd
gddgddggg d      d      }t        j                  ||       y )N)r   r   r   )r   rn  rn  rr  )rp  rq  rq  )r   r   r   r2  rq  r   r   r+   r   rn  )Nrq  rq  rU   r   r   r{  r|  s      r%   test_subset_duplicate_columnsr  _  s    		/?;"
B
 ZZaZ --dV-<F	
A$$Vc3Z#s,4F
 H 68,r'   c                    t        g dg dd      j                  dg      }t        |d   | d      j                  j	                  |      |d<   |j                  t        d	d
            }|j                         }t        g d|       j	                  |      }|d   j                         }t        ||g dgg dt        d      g dgg d      }t        d|d      }t        j                  ||       y )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  s     
 W	

 dA3i  !KcDGGOOPTUBzN	G:6	7B__F@cgdm 
 K'')Jz#HI!58-?@/E
 au73H68,r'   c                      t        g dg dg dd      } | j                  ddgdd      }|d	   j                         }t        g dg dg ddd
      }t        j                  ||       y )N)r   r   r   )r   r   r\  rl  rR  r   r+   Fr   r2   )r   r+   r2   r   )r   r   r   r   r   )r    r   r!   r$   s       r%   !test_value_counts_integer_columnsr    se    	?O	PB	QFU	7BU!FOaPH &(+r'   vc_sortc                 r   t        g dg dd      }|j                  d|       }|j                  ||      }|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}	|j                  |	      }t        j                  ||       y )Nr+   r   r   r   r2   r   r2   r2   r   r   r   r_   rU  )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    s     
,7	8B	Cd	#B__'Y_?F$AA	9'=c1XE fE	wWH	gg}}U#H68,r'   c           	         t        g dg ddd      }|j                  d| d      }|j                  ||	      }|rg d
}ng d}|rdnd}t        dt        g d      dt        g d      ||i      j	                  ddg      |   }| r|rg d}	n| r|sg d}	n| s|rg d}	ng d}	|j                  |	      }t        j                  ||       y )Nr  r  r  r   r&  r   T)rP   r%  rU  )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    s     
,7z	JB	CdT	2B__'Y_?F)$<'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   ra  r9  r@  rE  rG  rN  rP  rY  r<   rf  rh  rj  ru  ry  r}  r  r  r  r  r  ra   r'   r%   <module>r     s
     ) )
 
 
  '-(. tUm4b"X.QG,%!?TJ$AT:4-0*-ACS,TU$/tUm4D%=1'B 2 5 0 V 1 ; K - / 5 'BT u.- /-< c3Z$AB	- C	- c3Z$AB- C--6-(  ,-@V $CD*-ACS,TU dE]34-0H4 1 4 V EH4V ,MBMM)4LM&mbmmI.FG tUm4I	oH	uoH	t_oG, 5",D   E	eWi1RS	tUGY0QR	ueWi1RS-	
	 ;! ;0 	 	 @ '=		
 
(*HI	u(*LM	tY0
--.   + F"J""?:	
 1#J238Wbff56
 $\<@:	
4 *-=?S,TU; V56;0 eT]3eT]3$ BHH9J	
 BHHST	
70 4 4"70t 0F dE]3$ BHH9J	
 BHHST	
' 4 'T dE]3$ BHHFbhh	
 BHH	
"%L-M% 4N-` dE]3 	
$ 		
%@ $ BHH9J	
 BHHQR		
 "0!A 4b"0J eT]3eT]3$ BHH9J	
 BHHST		
 90! 4 4$90x 0	#	|_-,," #	4="AB	$v,),.ST eT]30 404 ---55	--$ u.- /-B, T5M2tUm4- 5 3-6 T5M2tUm4- 5 3-r'   