
    Bi                     H   d Z ddlZddl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                            d3dd	g          ej                            d4d	dg d5g d6g d7fdd	g d8g d9g d:fddg d;g d<g d=fg          d>                         Z&ej        d?             Z'ej                            d@d	dd	dAg dBg dCfddd	dAg dDg dEfdd	d	dAg dFg dGfdd	ddHg dIg dGfg          dJ             Z(ej        dK             Z)ej                            dLd	d	g dMg dNfd	dg dOg dPfdd	g dQg dRfddg dSg dTfg          dU             Z*ej        dV             Z+ej                            dWddXdXg e
j,        g dYg dZ[          fd	g d\ e
 e	dXg           e	g d]           e	d^d_ej-        g          gg d`g dag dbgg dZc          fg          ej                            dddg          dd                         Z.ej                            d0d	dg          ej                            ded	dg          ej                            dfd	dA ej/        g dgej0        h          fddH ej/        g di          fg          dj                                     Z1dk Z2ej                            d0dd	g          ej                            dfd	dA ej/        g dgej0        h          fddH ej/        g di          fg          dl                         Z3ej                            d0dd	g          ej                            dfd	dA ej/        g dmej0        h          fddH ej/        g dn          fg          do                         Z4ej                            d0dd	g          ej                            dpd	g dqfdg drfg          ej                            dfd	dA ej/        g dsej0        h          fddH ej/        g dt          fg          du                                     Z5ej                            d0d	dg          ej                            ded	dg          ej                            dfd	dA ej/        g dgej0        h          fddH ej/        g di          fg          dv                                     Z6ej                            dwd	dAg dxfddHg dTfg          dy             Z7ej                            dzd{ e8d|          g d}fd~ e8d          dgz   g dfg          ej                            d0d	dg          d                         Z9ej                            dddg          d             Z:d Z;d Z<d Z=d Z>d Z?ej                            ddd	g          d             Z@d ZAej                            ddd	g          ej                            d3dd	g          d                         ZBej                            ddd	g          ej                            d3dd	g          d                         ZCd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        /var/www/development/aibuddy-work/election-extract/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   .   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_index_   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   E   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   z   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
                 2    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        |          |_        |j                                        d         r"d g|j        j        dd          z   |j        _        t          j        ||           d S |                    dd	|d         j                            d          j                            d                     |                    dd
|d         j                            d          j                            d                     |	r|                     dd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>K  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+   str)r   r   )!r   r8   r   r   r   r   r   valuesr   r   r   r   r   rb   r   r   reset_indexrc   whereassert_frame_equalr   r   to_framer   splitgetr   r   r   isnarV   insertr   )r   r   r^   r   rP   rQ   r   rD   r   using_infer_stringr   r   r!   warnr   r$   index_frameindex_frame2s   `                 r%   $test_against_frame_and_seriesgroupbyr     s   @ r~'&//11e111KC    	
 	
 	
 i(/@@@@
 
 	
B 
		h		7	7B;'(55$) 6  F  14 '8 3 3}}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#&--q$ia-@@L'2<@@HN#((**1- I )-v0DQRR0H'H$"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! R#??e%+P+PQQ !&(33333s   !!DDD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<   |r$|	t          k    r|                     dd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   zstring[pyarrow]r   r   )	r   r   r   r   r   convert_dtypesobjectr   r   )r   r^   rP   rQ   expected_rowsexpected_countexpected_group_sizeany_string_dtyper   r   r   r!   r$   r   s   `            @r%   test_compoundr     s   ( E&&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 
evoo??UCC
 
 &(+++++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>  Y  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   r7  r9  )copyr   r  add_categoriesr   r   r	   r   r   rY   r   r   r   set_categoriesr   r:  r   r   r   r   )r   r   r*  r  r^   r   r  r   r!   r<  r=  index_levelr$   s                r%   !assert_categorical_single_grouperrE    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   rE  r   r   r^   r   r  r   r  s          r%   -test_categorical_single_grouper_observed_truerJ    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   r0  r1  r2  r   r   r3  r4  r5  r6  )r@  r   r   )r@  r   r   )r@  r   r   )r@  r   r   )r@  r   r   )r@  r   r   rG  rH  rI  s          r%   .test_categorical_single_grouper_observed_falserL    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   )rM  rN  rO  rP  rQ  )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+   r7  rO   r   r9  )rA  r   r   r   r	   r   r   rY   r   r:  r   r   r   r   r   r   )r   r   r*  r  r^   r   r  r   r!   r<  r=  r$   s               r%   "test_categorical_multiple_groupersrS  X  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   r7  rO   r   r9  )r   r8   r   r   r   r   r   rA  r   r   r   r	   r   r   rY   r   r:  r   r   r   r   r   r   r;  s                r%   test_categorical_non_groupersrU    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   er8  r,   level_1)r   Nra  r   crc  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+  ra  rY  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'   rc  )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_duplicatesrl    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 )NrW  r   r   r   FrY  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_duplicatesrn  6  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   rg  r   r	   r   r   r   r   )r    r   r!   r$   s       r%   test_ambiguous_groupingrp  G  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   rd  r   yrt  c1c2r   r   r   r   z;Keys {'c1'} in subset cannot be in the groupby column keys.r   rv  r   r   r   r   r   r   r   r    r   s     r%   "test_subset_overlaps_gb_key_raisesr{  R  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 )Nrr  rs  ru  rx  r   z4Keys {'c3'} in subset do not exist in the DataFrame.r   rv  c3r   ry  rz  s     r%   !test_subset_doesnt_exist_in_framer  Z  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 )Nrr  rs  ru  rx  r   r   r7  rw  r   r   r+   r   rt  rU   r   r   r   r   r   r	   r   r[   r   r   r    r!   r$   s      r%   test_subsetr  b  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   rt  rt  rx  )rv  rw  rw  )r   r   r   r7  rw  r   r   r+   r   rt  )Nrw  rw  rU   r   r   r  r  s      r%   test_subset_duplicate_columnsr  n  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    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   ra  rr  rW  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_   rZ  )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*  rZ  )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'   )D__doc__numpyr8   r   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   r   r  r  r  r  r&  r[   r>   r)  r   rg  r>  rE  rJ  rL  rS  rU  r^  r<   rl  rn  rp  r{  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Y4 Y4 10 43  VU EDY4x tUm44I	oooH	uoooH	t___oooG ', ',  54',T    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'   