
    I j                        S r SSKrSSKrSSKJrJrJrJrJ	r	J
r
JrJrJr  SSKJr  S rS r\R&                  R(                  \R&                  R+                  SSS/5      \R&                  R+                  S	S
S/5      \R&                  R+                  SSS/5      \R&                  R+                  SSSSS//\S9\R&                  R+                  SSSS//\S9\R&                  R+                  SSS/5      \R&                  R+                  SSS/5      S 5       5       5       5       5       5       5       5       r\R&                  R+                  SSS/5      S 5       r\R&                  R+                  SSS// SQ/5      S 5       r\R&                  R+                  SSS// SQ/5      S  5       rS! rS" r\R:                  S# 5       rS$ rS% r S& r!\R&                  R+                  S'/ S(Q5      \R&                  R+                  SSS/5      \R&                  R+                  S)/ S*Q5      \R&                  R+                  S+SS/5      S, 5       5       5       5       r"\R&                  R+                  S-SS/5      \R&                  R+                  S.SS/ S/Q/ S0Q/ S1Q4SS/ S2Q/ S3Q/ S4Q4SS/ S5Q/ S6Q/ S7Q4/5      S8 5       5       r#\R&                  R+                  S9SSSS:/ S;Q/ S<Q4SSSS:/ S=Q/ S>Q4SSSS:/ S?Q/ S@Q4SSSSA/ SBQ/ S@Q4/5      SC 5       r$\R&                  R+                  SDSS/ SEQ/ SFQ4SS/ SGQ/ SHQ4SS/ SIQ/ SJQ4SS/ SKQ/ SLQ4/5      SM 5       r%\R&                  R+                  SNSSOSO/\
RL                  " / SPQ/ SQQSR94S/ SSQ\
" \	" SO/5      \	" / STQ5      \	" SUSV\RN                  /5      // SWQ/ SXQ/ SYQ// SQQSZ94/5      \R&                  R+                  SSS/5      S[ 5       5       r(\R&                  R+                  S\SS/5      \R&                  R+                  S]SS:\RR                  " / S^Q\RT                  S_94SSA\RR                  " / S`Q5      4/5      Sa 5       5       r+Sb r,\R&                  R+                  S]SS:\RR                  " / S^Q\RT                  S_94SSA\RR                  " / S`Q5      4/5      Sc 5       r-\R&                  R+                  S]SS:\RR                  " / SdQ\RT                  S_94SSA\RR                  " / SeQ5      4/5      Sf 5       r.\R&                  R+                  SgS/ ShQ4S/ SiQ4/5      \R&                  R+                  S]SS:\RR                  " / SjQ\RT                  S_94SSA\RR                  " / SkQ5      4/5      Sl 5       5       r/\R&                  R+                  S\SS/5      \R&                  R+                  S]SS:\RR                  " / S^Q\RT                  S_94SSA\RR                  " / S`Q5      4/5      Sm 5       5       r0\R&                  R+                  SnSS:/ SoQ4SSA/ SLQ4/5      Sp 5       r1\R&                  R+                  SqSr\2" Ss5      / StQ4Su/ \2" Sv5      QSwP/ SxQ4/5      Sy 5       r3\R&                  R+                  SzSS/5      S{ 5       r4S| r5S} r6S~ r7S r8S r9\R&                  R+                  SSS/5      S 5       r:S r;\R&                  R+                  SSS/5      \R&                  R+                  S-SS/5      S 5       5       r<\R&                  R+                  SSS/5      \R&                  R+                  S-SS/5      S 5       5       r=\R&                  R+                  SSS/5      S 5       r>g)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_datetimec                  R   [        S/S/S.5      n U S   R                  S5      U S'   U R                  S5      S   R                  5       n[        SS//SS/S9nUS   R                  S5      US'   [        R
                  " U5      n[        S/US	S
9n[        R                  " X5        g )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        /root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/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6,    c           	         [        SSS9n[        [        R                  R	                  S5      R                  [        S5      U5      [        R                  R	                  S5      R                  X15      [        R                  R	                  S5      R                  SUS-   U5      S.5      nU (       a  US   R                  S	5      US'   [        R                  UR                  SS S
2S4'   [        R                  UR                  SS S2S4'   [        R                  UR                  SS S2S4'   [        R                  UR                  SS S2S4'   [        R                  UR                  SS S2S4'   U$ )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_dfrD   ,   s0   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   c                    [        XU5      nS nUUU	U
US.nUR                  X5S9nUS   R                  " S0 UD6nUR                  X5S9nUS   R                  " [        R                  40 UD6n/ UR
                  R                  S S QSPUR
                  l        UR                  U5      n[        XU45      u  nn[        R                  " UR                  5       UR                  5       5        g )Nc                     [        [        U R                  R                  [	        U R                  R
                  5      5      5      n[        R                  " XR                  R                  S9U l        U $ )Nnames)	r;   mapr   get_level_valuesrangenlevelsr   from_arraysrR   )r   arrs     r$   rebuild_index7test_series_groupby_value_counts.<locals>.rebuild_indexZ   sK    3rxx00%8H8H2IJK))#XX^^D	r&   )	normalizesort	ascendingdropnarL   r\   r.    )rD   r   r   applyr	   r   rR   renamerS   r   r   
sort_index)r?   rE   rG   rJ   rL   rM   r[   r   r\   r]   r^   r   rY   kwargsgrleftrights                    r$    test_series_groupby_value_countsri   C   s    * 
g	.B F 
D	%Be9!!+F+D	D	%BuIOOF//:6:E8%++++CR08%8EKKLLE mE]3KD%4??,e.>.>.@Ar&   utcc                    [        / SQ/ SQS.5      R                  S/5      n[        US   U SS9US'   UR                  [	        S	SS
95      nUS   R                  5       R                  5       nUS   R                  [        R
                  5      R                  5       nUR                  R                  UR                  l
        UR                  S5      n[        R                  " X45        g )NiGI]i)J]iJ]iK]i)<M]iU=M]iN]applern   bananaro   orangerp   pear	TimestampFoodr1   rs   srj   unitDatetime1Dfreqkeyrt   r   )r   dropr   r   r   r   rd   rb   r	   r   rR   rc   r   r   )rj   r   dfgr    r#   s        r$   -test_series_groupby_value_counts_with_grouperr   u   s     
 W	

 dA3i  !KcDBzN
**W$J7
8C [%%'224F6{  !4!45@@BH!<<--HNNw'H6,r&   r   AB)r   r   Cc                    [        U S9nUR                  U S S 5      nX S      R                  5       n[        / UR                  SS9n[
        R                  " / /[        U 5      -  U S9Ul        [        R                  " X45        g )Nr   r`   r   )dtyper   rQ   )r   r   r   r	   r   r   rW   lenr   r   r   r   r   r~   r    r#   s        r$   &test_series_groupby_value_counts_emptyr      sv     
7	#B
**WSb\
"C**,Fb7;H++RD3w<,?wOHN6,r&   c                     [        [        [        U 5      5      /U S9nUR                  U S S 5      nX S      R	                  5       nUR	                  5       n[
        R                  " X45        g )N)datar   r`   )r   rU   r   r   r   r   r   r   s        r$   (test_series_groupby_value_counts_one_rowr      s_     
s7|,-w	?B
**WSb\
"C**,F H6,r&   c                  *   [        [        S/SS/S95      n U R                  S/5      R                  5       n[        SS/[        R
                  " [        R                  " SS/5      [        SS/SS/SSS9/5      S	S
9n[        R                  " X5        g )Nab)
categoriesr   r   Fr   )r   orderedr   r   r   r   r   )r	   r   r   r   r   rW   r7   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$ 6,r&   c                      [        / SQ/ SQ/ SQS.5      n U R                  SS/SS9S	   nUR                  SS9n[        S
S/SS// SQ// SQ/ SQ/ SQ// SQS9n[	        / SQUSS9n[
        R                  " X$5        g )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codesrR   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6,r&   c                  ,    [        / SQ/ SQ/ SQS.5      $ )Nr   r   r   r   )r   ra   r&   r$   education_dfr      s    JH;	
 r&   c                     U R                  S5      n[        R                  " [        SS9   UR	                  S/S9  S S S 5        g ! , (       d  f       g = f)Nr   subsetmatchr   )r   pytestraises
ValueErrorr   )r   gps     r$   test_bad_subsetr      s<    			i	(B	z	2
	{+ 
3	2	2s   A
Ac                    UR                  [        R                  R                  SSS95        U R	                  S5      SS/   R                  SS9n[        / S	Q[        R                  " / S
Q/ SQS9SS9n[        R                  " X#5        g )NYpandas 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   rQ   rN   r   )applymarkerr   markxfailr   r   r	   r   from_tuplesr   r   )r   requestr    r#   s       r$   
test_basicr      s    ?  	 	
 !!),h-DERR S F ($$ 5	
 H 6,r&   c                 &    X   R                  X#US9$ )Nr[   r\   r]   )r   )r   rJ   r[   r\   r]   s        r$   _frame_value_countsr     s    8  99 UUr&   r   columnr   functionzsort, ascending))FN)TT)TFrC   c
                   ^  U(       a;  U(       a4  U(       a-  UR                  [        R                  R                  SSS95        ST S   R                  U 4S jS.U   n
T R                  XS9nUSS	/   R                  X$US
9nU(       a  UR                  [        SS	/X$U5      nU(       a  [        R                  " X5        g U(       a  SOSnUR                  5       R                  SU0SS9nUS;   a#  U(       d  U(       a  UR                  SSUS   S9  OUR                  SSUS   S9  [        R                  " X5        g T S   S-   T S	   -   T S'   US   R                  X$US
9nX=l        U(       GaC  UR                   R#                  SS9nUS   R$                  R'                  S5      R$                  R)                  S5      US'   US   R$                  R'                  S5      R$                  R)                  S5      US	'   US   R*                  nUR-                  XS.5      nUS	 UR                  SS 0SS9n[.        R0                  " U5      Ul        UR2                  R5                  5       S   (       a+  S /UR                   R6                  SS  QUR                   l        [        R                  " X5        g UR                  SSUS   R$                  R'                  S5      R$                  R)                  S5      5        UR                  SS	US   R$                  R'                  S5      R$                  R)                  S5      5        U	(       a  UR-                  SSS.5      nUS	 [        R                  " X5        g )Nr   Fr   r   c                    > TS   U    S:H  $ )Nr   r   ra   )xr   s    r$   <lambda>6test_against_frame_and_seriesgroupby.<locals>.<lambda><  s    l95a8D@r&   r   )byas_indexr   r   r   rN   r   r   r   )axis)r   r   level_0)r>   r   value-bothr   )r   r   r*   str)r   r   r   r   valuesr   r   rb   r   r   r   reset_indexrc   insertassert_frame_equalr   r   to_framer   splitgetr   r   r   r   r   isnarR   )r   r   r[   r   r\   r]   r   rC   r   using_infer_stringr   r   r    r#   index_frame
both_dtypeindex_frame2s   `                r$   $test_against_frame_and_seriesgroupbyr     sI   > )KKC   	
 i(//@
 	
B 
				7B;'(55) 6 F 88(K!8)9
 ""64#,<'D++-44aYQ4GH//eAivi?PQAivi?PQ!!&3  ,H5;l;>WWVf:**i + 
 "..111>K$/$7$;$;$A$A#$F$J$J$N$Nq$QK!'26':'>'>'D'DS'I'M'M'Q'QRS'TK$$V,22J%,,%?K F#&--q$ia-@L'22<@HN##((*1- )-'Hx~~/C/CAB/G'H$""64OOAx&)9)=)=)C)CC)H)L)L)P)PQR)STOOA{HV,<,@,@,F,Fs,K,O,O,S,STU,VW!#??e%+PQ !!&3r&   r[   zCsort, ascending, expected_rows, expected_count, expected_group_size)r   r   r*   r1      r   )r   r1   r   r1   r   )r1   r   r   r*   r   )r*   r   r   r   r   )r1   r   r1   r   r   )r   r   r*   r   r1   )r   r   r   r   r*   )r   r1   r   r   r1   c	                    Un	U R                  U	5      n U R                  R                  U	5      U l        U R                  SS/SSS9n
U
S   R                  XUS9n[	        5       nS HN  nU Vs/ s H
  oU   U   PM     snX'   UR                  U	5      nUR                  R                  U	5      Ul        MP     U(       a.  X\S'   US==   U-  ss'   U	S	:X  a  US   R                  5       US'   O X\S
'   U	S	:X  a  US
   R                  5       US
'   U(       a  U	[        :X  a  UR                  SSSS.5      n[        R                  " X5        g s  snf )Nr   r   Fr   r\   r   r   r   rN   zstring[pyarrow]r   r   )	r   r   r   r   r   convert_dtypesobjectr   r   )r   r[   r\   r]   expected_rowsexpected_countexpected_group_sizeany_string_dtyper   r   r   r    r#   r   rows                  r$   test_compoundr   u  se   ( E&&u-L'//66u=L			y(3e%		PB_))) * F {H4ANO#05O??5)#++2259 5 !/"55%%%-l%;%J%J%LH\"*%% ( 1 @ @ BHWevo??UC
 &+% Ps   -E
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   rN   )r   r   r   c                 &   [        / SQ/ SQ/ SQS./ SQS9nUR                  XUS9n[        U[        R                  " U/ SQS9US	9n[
        R                  " Xx5        UR                  S
5      R                  XUS9n	[
        R                  " X5        g )Nr   r   r   r   )r*   r   r   r   )r*   r   r   r   )r|   num_legs	num_wings)falcondogcatantr   )r\   r]   r[   rQ   r   r|   )r   r   r	   r   rW   r   r   r   )
r\   r]   r[   r   expected_dataexpected_index
animals_dfresult_framer#   result_frame_groupbys
             r$   test_data_frame_value_countsr    s    * ,\R-J **) + L $$"B
 H <2%--e4AA) B  /:r&   z:group_dropna, count_dropna, expected_rows, expected_values)	r   r   r1   rH   r   r3   r5   r*   r   )	r   r         ?r   r   r   r   r  r  )r   r   r1   rH   r*   r   )r   r   r  r  r  r  )r   r   rH   r   r3   r5   )r   r   r   r   r   r   )r   r   rH   )r   r   r  c                    U (       d-  UR                  [        R                  R                  SSS95        [	        SS[
        R                  S[
        R                  SSSS/	SSS[
        R                  [
        R                  SSSS/	SSSSS	S[
        R                  S
[
        R                  /	SSSSS	SS[
        R                  [
        R                  /	S.5      nUR                  SS/U S9nUR                  SSUS9n[	        5       nUR                   H  n	U V
s/ s H
  oU	   U
   PM     sn
X'   M     [        R                  " U5      n[        X;SS9n[        R                  " X|5        g s  sn
f )Nr   Fr   r   r   r   r1   r*   rH   r5   r3   )r   r   r   Dr   r   )r^   T)r[   r\   r^   rN   r   )r   r   r   r   r   r7   r=   r   r   r   r   r   r	   r   r   )group_dropnacount_dropnar   expected_valuesr   nulls_dfr   r    r   r   r   r   r#   s                r$   test_dropna_combinationsr    sT   " KKC   	
 Q2661aA6Q2662661aA6Q1aBFFArvv6Q1aArvvrvv6		
H 
		3*\		:B__t$|_LFkG""<IJMSF+C0MJ #!!'*E?lKH6, Ks   E*z%dropna, expected_data, expected_indexr   )r   r   )JohnBeth)SmithLouiser|   
first_namemiddle_namerQ   r   )Anner  r  r  r  )r   r   r   r   )r*   r   r*   r   )r   r*   r*   r   r   c                 4   [        / SQ/ SQSX S/S.5      nUR                  XS9n[        UUUS9nU(       a  U[        [	        U5      5      -  n[
        R                  " Xx5        UR                  S5      R                  XS9n	[
        R                  " X5        g )	Nr   )r  r  r  r  r  r  r  )r^   r[   r   r|   )r   r   r	   r/   r   r   r   r   )
nulls_fixturer^   r[   r   r   r   names_with_nulls_dfr  r#   r  s
             r$   #test_data_frame_value_counts_dropnar    s    B $:#]8L	
 '336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                 <   UR                  [        R                  R                  SSS95        U R	                  S5      R                  SXS9nUR                  US9n[        R                  " / SQ/ S	QS
9n	[        UU	US9n
[        S5       HB  nU
R                  R                  [        U
R                  R                  U   5      US9U
l        MD     U(       a  [        R                   " X5        g U
R#                  U(       a  SOSS9n[        R$                  " X5        g )Nr   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   rQ   r   r1   levelrN   r   r   )r   r   r   r   r   r   r   r   r   r	   rU   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-  ;  s$   * ?  	 	
 
		Z	(	0	0H 
1 
B __y_1F++	
 1N$ O
 1X / 5 5 @ @_2299!<=Q !A !
 
 
v7"..!* / 
 	f/r&   c                    U R                  5       R                  S5      n U S   R                  R                  S/5      U S'   U R	                  SXS9nUR                  US9n[        U[        R                  " U/ SQS9US9n	[        S	5       Hq  n
[        U	R                  R                  U
   5      nU
S
:X  a(  UR                  U S   R                  R                  5      nU	R                  R                  XS9U	l        Ms     U(       a  [         R"                  " X5        g U	R%                  US9n[         R&                  " X5        g )Nr   r   ASIAr  r   r   rQ   r   r1   r   r&  r(  )copyr   r   add_categoriesr   r   r	   r   r   rU   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_grouperr4    s4     $$&--j9L +9599HH&RL			i(		NB__y_1F$$4
 O 1X&'<'<'C'CA'FG6%44Y'++66K !0 5 5 @ @ @ V  
v7"..D.9
f/r&   c           
          UR                  [        R                  R                  SSS95        / SQn[	        U USUUUUS9  g )Nr   Fr   r  Tr   r   r  r   r[   r   r   r   r   r   r   r4  r   r   r[   r   r   r   r   s          r$   -test_categorical_single_grouper_observed_truer9    sY    ( ?  	 	
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           
          UR                  [        R                  R                  SSS95        / SQn[	        U USUUUUS9  g )Nr   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   r6  r7  r8  s          r$   .test_categorical_single_grouper_observed_falser;    sZ    V ?  	 	
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   )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                 X   U R                  5       n U S   R                  S5      U S'   U S   R                  S5      U S'   U R                  SS/XS9nUR                  US9n[	        U(       a  XfS:     OU[
        R                  " U/ SQS9US	9n	[        S
5       HB  n
U	R                  R                  [        U	R                  R                  U
   5      U
S9U	l        MD     U(       a  [        R                  " X5        g U	R                  U(       a  SOSS9n[        R                  " X5        g )Nr   r   r   r  r   r  )r   r   r   rQ   r   r*   r&  rN   r   r(  )r0  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,  r#   s               r$   "test_categorical_multiple_groupersrB  4  s3   l  $$&L*95<<ZHL ,[ 9 @ @ LL				K 8 
 
B __y_1F3;]3./$$4
 O 1X / 5 5 @ @_2299!<=Q !A !
 
 
v7"..!* / 
 	f/r&   c                    UR                  [        R                  R                  SSS95        U R	                  5       n U S   R                  S5      U S'   U S   R                  S5      U S'   U R                  SXS9nUR                  US	9n/ S
Qn	[        U[        R                  " U	/ SQS9US9n
[        SS5       HB  nU
R                  R                  [        U
R                  R                  U   5      US9U
l        MD     U(       a  [         R"                  " X5        g U
R%                  U(       a  SOSS9n[         R&                  " X5        g )Nr   Fr   r   r   r   r   r  r   r  r   rQ   r   r   r1   r&  rN   r   r(  )r   r   r   r   r0  r   r   r   r	   r   r   rU   r   r)  r   r   r   r   r   r   r*  s                r$   test_categorical_non_groupersrD    sV   . ?  	 	
  $$&L)(3:::FL ,[ 9 @ @ LL			i(		NB__y_1FN $$4
 O 1a[ / 5 5 @ @_2299!<=Q !A !
 
 
v7"..!* / 
 	f/r&   z*normalize, expected_label, expected_valuesr   c                    [        / SQ/ SQS.5      nUR                  / SQSS /SS9nUR                  S	U S
9n[        S[        R                  " / SQ[
        S9S/ SQS/ SQS/ SQX05      n[        R                  " XV5        g )Nr   r   r*   r1   )r   r   )r   rH   r   r   c                     U S:X  a  S$ S$ )Nr   r3   r5   ra   )r,  s    r$   r   &test_mixed_groupings.<locals>.<lambda>  s    AFq/A/Ar&   Fr   Tr\   r[   r   )r   r   rH   r  r   level_2)r5   r5   r3   r   )r   r1   r*   )r   r   r   r7   r   intr   r   )r[   expected_labelr	  r   r   r    r#   s          r$   test_mixed_groupingsrN    s     
3	4B	Y%ABU	SB__$)_<Frxx	5y	
H &+r&   ztest, columns, expected_namesrepeatabbde)r   Ndr   r   er'  r+   level_1)r   NrQ  r   crS  c                    [        / SQ/ SQ/US9nSS/nS[        R                  " SS/[        R                  S	9S
/nUR	                  XcS9R                  5       nU(       a5  [        S[        R                  " UUS9SS9n[        R                  " Xx5        g U V	s/ s H  n	/ [        U	5      QSPPM     nn	[        U5      n
SU
S'   U
R                  S5        [        XZS9n[        R                  " Xx5        g s  sn	f )N)r   r1   rH   r3   r6   )r*   r   r   r5   r(   r   )r   r   r3   r1   rH   r6   )r*   r   r5   r   r   r(   r   r   r   r  rQ  rI  r  rQ   r   r   rS  )r   r7   r   int64r   r   r	   r   r   r   r   r;   appendr   )testr   expected_namesr   r   r   rJ   r    r#   r   expected_columnss              r$   test_column_label_duplicatesr[    s     
O%56	HB')<=M1a&137DZZZ0==?F(($ 
 	v04ABMS49aMB/'(]E
f/ Cs   C6znormalize, expected_labelc                     [        / SQ/SSU/S9R                  SSS9nSU S3n[        R                  " [        US	9   UR                  U S
9  S S S 5        g ! , (       d  f       g = f)NrF  r   r   r   FrI  zColumn label 'z' is duplicate of result columnr   r   )r   r   r   r   r   r   )r[   rM  r   msgs       r$   test_result_label_duplicatesr^    si     
I;c>(B	C	K	Ke 
L 
B >**I
JC	z	-
), 
.	-	-s   A
A%c                     [        SSS/05      n U R                  [        R                  " SS/[        R                  S95      nUR                  5       n[        S/[        R                  " SS//S S/S9SS9n[        R                  " X#5        g )Nr   r   r  r*   rQ   r   r   )r   r   r7   r   rV  r   r	   r   r   r   r   )r   r   r    r#   s       r$   test_ambiguous_groupingr`    s{    	C!Q=	!B	BHHaV2884	5B__F	
:))Aq6(4+FWH 6,r&   c                      [        / SQ/ SQS./ SQS9n Sn[        R                  " [        US9   U R	                  S5      R                  S/S	9  S S S 5        g ! , (       d  f       g = f)
Nr   r   rT  r   yrd  c1c2r   r   r   r   z;Keys {'c1'} in subset cannot be in the groupby column keys.r   rf  r   r   r   r   r   r   r   r   r]  s     r$   "test_subset_overlaps_gb_key_raisesrk  *  sN    	/A	SB
GC	z	-


4%%dV%4 
.	-	-    A
A&c                      [        / SQ/ SQS./ SQS9n Sn[        R                  " [        US9   U R	                  S5      R                  S	/S
9  S S S 5        g ! , (       d  f       g = f)Nrb  rc  re  rh  r   z4Keys {'c3'} in subset do not exist in the DataFrame.r   rf  c3r   ri  rj  s     r$   !test_subset_doesnt_exist_in_framero  2  sN    	/A	SB
@C	z	-


4%%dV%4 
.	-	-rl  c                      [        / SQ/ SQS./ SQS9n U R                  SS9R                  S/S	9n[        S
S/[        R
                  " SS
/SS//S S/S9SS9n[        R                  " X5        g )Nrb  rc  re  rh  r   r   r&  rg  r   r   r*   r   rd  rQ   r   r   r   r   r   r	   r   rW   r   r   r   r    r#   s      r$   test_subsetrs  :  sx    	/A	SBZZaZ --dV-<F	
A$$q!fsCj%9$NH
 6,r&   c            	          [        / SQ/ SQ/ SQ// SQ/ SQS9n U R                  SS9R                  S/S	9n[        S
S/[        R
                  " SS
/SS/SS/// SQS9SS9n[        R                  " X5        g )N)r   r   r   )r   rd  rd  rh  )rf  rg  rg  )r   r   r   r&  rg  r   r   r*   r   rd  )Nrg  rg  rQ   r   r   rq  rr  s      r$   test_subset_duplicate_columnsru  F  s    		/?;"
B
 ZZaZ --dV-<F	
A$$Vc3Z#s,4F
 H 6,r&   c                    [        / SQ/ SQS.5      R                  S/5      n[        US   U SS9R                  R	                  U5      US'   UR                  [        S	SS
95      nUR                  5       n[        / SQU S9R	                  U5      nUS   R                  5       n[        XV/ SQ// SQ[        S5      / SQ// SQS9n[        SUSS9n[        R                  " XH5        g )Nrl   rm   rr   r1   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*   r1   r   )r   r   r   r*   r*   r1   )rx   rs   rt   r   r   r   r   )r   r}   r   dtas_unitr   r   r   uniquer   rU   r	   r   r   )	rj   rw   r   r   r    dates
timestampsr   r#   s	            r$   test_value_counts_time_grouperr|  X  s     
 W	

 dA3i  !KcDGGOOPTUBzN	G:6	7B__F@cgdm 
 K'')J#HI!58-?@/E
 au73H6,r&   c                      [        / SQ/ SQ/ SQS.5      n U R                  SS/SSS9nUS	   R                  5       n[        / SQ/ SQ/ SQSS
.5      n[        R                  " X#5        g )N)r   r   r   )r   r   rQ  rb  rF  r   r*   Fr   r1   )r   r*   r1   r   )r   r   r   r   r   )r   r   r    r#   s       r$   !test_value_counts_integer_columnsr~  z  sc    	?O	PB	QFU	7BU!FOaPH &+r&   vc_sortc                    [        / SQ/ SQS.5      nUR                  SU S9nUR                  XS9nU(       a  / SQnO/ SQn[        S	S
/SS/// SQ/ SQ/SS/S9n[	        XgU(       a  SOSS9nU (       a  U(       a  / SQn	O*U (       a  U(       d  / SQn	OU (       d  U(       a  / SQn	O/ SQn	UR                  U	5      n[        R                  " XX5        g )Nr*   r   r   r   r1   r   r1   r1   r   r   r   r_   rJ  )UUUUUU?UUUUUU?r  r   r   r*   r1   r   )r   r   r   )r   r   r   r   r   rN   r   r   )r   r   r*   )r   r   r*   )r   r*   r   )r*   r   r   )r   r   r   r   r	   taker   r   )
r\   r  r[   r   r   r    r   r   r#   takers
             r$   test_value_counts_sortr    s     
,7	8B	Cd	#B__'_?F$AA	9'=c1XE f	wWH	gg}}U#H6,r&   c           	         [        / SQ/ SQS.SS9nUR                  SU SS9nUR                  XS	9nU(       a  / S
QnO/ SQnU(       a  SOSn[        S[        / SQ5      S[        / SQ5      Xv05      R	                  SS/5      U   nU (       a  U(       a  / SQn	O*U (       a  U(       d  / SQn	OU (       d  U(       a  / SQn	O/ SQn	UR                  U	5      n[        R                  " XX5        g )Nr  r  r  r   r  r   T)r\   r  rJ  )r  r  r  r  )r*   r   r   r   rN   r   )r   r   r*   r*   r   )r1   r   r1   r   )r   r   r*   r1   )r   r*   r   r1   )r*   r   r   r1   )r   r   r   r   	set_indexr  r   r   )
r\   r  r[   r   r   r    r   r   r#   r  s
             r$   "test_value_counts_sort_categoricalr    s     
,7z	JB	CdT	2B__'_?F)$<'D\*{<(	
 ia$ H 	gg}}U#H6,r&   groupby_sortc                    [        / SQ[        R                  S.5      nUR                  SUS9nUR	                  XS9nSS/[        R                  //SS/S	.nU(       a  / n[        SS
/ / /0UD6nO=U(       d  U (       d  SS/n[        SS
SS/SS//0UD6nOSS/n[        SS
SS/SS//0UD6n[        XxSSS9n	[        R                  " XY5        g )Nr   )r   r   r   r_   )r\   r^   r   r*   r   )r   rR   r   r   rV  r   )r   r   r   ra   )	r   r7   r=   r   r   r   r	   r   r   )
r\   r^   r  r   r   r    re   r   r   r#   s
             r$   test_value_counts_all_nar    s     
0	1B	Cl	+B__$_6FQ"&&*c3Z@F4"b4V4$1v<1a&1a&!1<V<1v<1a&1a&!1<V<dwWEH6,r&   )?__doc__numpyr7   r   pandasr   r   r   r   r   r   r	   r
   r   pandas._testing_testingr   r%   rD   r   slowparametrizereprri   r   r   r   r   r   fixturer   r   r   r   r   r   r  r  rW   r=   r  r   rV  r-  r4  r9  r;  rB  rD  rN  r;   r[  r^  r`  rk  ro  rs  ru  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'B V 1 ; K - / 5 'BT u.- /-< c3Z$AB	- C	- c3Z$AB- C--6-(  ,->V $CD*-ACS,TU 4-0W4 1 V EW4t tUm4I	oH	uoH	t_oG', 5',T E	eWi1RS	tUGY0QR	ueWi1RS-	
	 ;! ;8 @ '=		
 
(*HI	u(*LM	tY0
--> + F""?:	
 1#J238Wbff56
 $\<@:	
4 *-=?S,TU; V56;> eT]3$ HH9J	
 HHST	
60 4 60r 0F $ HH9J	
 HHST	
&&R $ HHFbhh	
 HH	
"%L,M%L,^  	
$ 		
%@ $ HH9J	
 HHQR		
 "0!A`"0J eT]3$ HH9J	
 HHST		
 80! 4"80v 0	#	|_-,," #	4="AB	,DL,),.ST004 ---55	--$ u.- /-B, T5M2tUm4- 5 3-6 T5M2tUm4- 5 3-> $7- 8-r&   