
    i                     &   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 Zd Zej&                  j(                  ej&                  j+                  dddg      ej&                  j+                  d	d
dg      ej&                  j+                  dddg      ej&                  j+                  dddddgge      ej&                  j+                  ddddgge      ej&                  j+                  dddg      ej&                  j+                  dddg      d                                                         Zej&                  j+                  dddg      d        Zej&                  j+                  dddgg dg      d        Zej&                  j+                  dddgg dg      d         Zd! Zd" Zej:                  d#        Zd$ Zd% Z d& Z!ej&                  j+                  d'g d(      ej&                  j+                  dddg      ej&                  j+                  d)g d*      ej&                  j+                  d+ddg      d,                             Z"ej&                  j+                  d-ddg      ej&                  j+                  d.ddg d/g d0g d1fddg d2g d3g d4fddg d5g d6g d7fg      d8               Z#ej&                  j+                  d9dddd:g d;g d<fdddd:g d=g d>fdddd:g d?g d@fddddAg dBg d@fg      dC        Z$ej&                  j+                  dDddg dEg dFfddg dGg dHfddg dIg dJfddg dKg dLfg      dM        Z%ej&                  j+                  dNddOdOg e
jL                  g dPg dQR      fdg dS e
 e	dOg       e	g dT       e	dUdVejN                  g      gg dWg dXg dYgg dQZ      fg      ej&                  j+                  dddg      d[               Z(ej&                  j+                  d\ddg      ej&                  j+                  d]dd: ejR                  g d^ejT                  _      fddA ejR                  g d`      fg      da               Z+db Z,ej&                  j+                  d]dd: ejR                  g d^ejT                  _      fddA ejR                  g d`      fg      dc        Z-ej&                  j+                  d]dd: ejR                  g ddejT                  _      fddA ejR                  g de      fg      df        Z.ej&                  j+                  dgdg dhfdg difg      ej&                  j+                  d]dd: ejR                  g djejT                  _      fddA ejR                  g dk      fg      dl               Z/ej&                  j+                  d\ddg      ej&                  j+                  d]dd: ejR                  g d^ejT                  _      fddA ejR                  g d`      fg      dm               Z0ej&                  j+                  dndd:g dofddAg dLfg      dp        Z1ej&                  j+                  dqdr e2ds      g dtfdug  e2dv      dwg dxfg      dy        Z3ej&                  j+                  dzddg      d{        Z4d| Z5d} Z6d~ Z7d Z8d Z9ej&                  j+                  dddg      d        Z:d Z;ej&                  j+                  dddg      ej&                  j+                  d-ddg      d               Z<ej&                  j+                  dddg      ej&                  j+                  d-ddg      d               Z=ej&                  j+                  dddg      d        Z>y)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                  \   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        k/app/cer_product_mecsu/.venv/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_dfrD   ,   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   c                    t        | ||      }d }|||	|
|d}|j                  ||      } |d   j                  di |}|j                  ||      } |d   j                  t        j                  fi |}g |j
                  j                  d d d|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_arraysrR   )r   arrs     r$   rebuild_indexz7test_series_groupby_value_counts.<locals>.rebuild_indexZ   sM    3rxx00%8H8H2IJK))#RXX^^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   rZ   r   r[   r\   r]   r   rY   kwargsgrleftrights                    r$    test_series_groupby_value_countsrh   C   s    * 
Hg	.B F 
Du	%B!2e9!!+F+D	Du	%BBuIOOF//:6:E8%++++CR08%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]applerm   bananarn   orangero   pear	TimestampFoodr1   rr   sri   unitDatetime1Dfreqkeyrs   r   )r   dropr   r   r   r   rc   ra   r	   r   rR   rb   r   r   )ri   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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   rQ   )r   r   r   r	   r   r   rW   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   rU   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   rW   r7   arrayr   r   r   )rt   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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68,r&   c                  ,    t        g dg dg dd      S )Nr   r   r   r   )r   r`   r&   r$   education_dfr      s    JH;	
 r&   c                     | j                  d      }t        j                  t        d      5  |j	                  dg       d d d        y # 1 sw Y   y xY w)Nr   subsetmatchr   )r   pytestraises
ValueErrorr   )r   gps     r$   test_bad_subsetr      sE    			i	(B	z	2 ,
	{+, , ,s   A

Ac                 .   |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 )NYpandas default unstable sorting of duplicatesissue with numpy>=1.25 with AVX instructionsFreasonstrictr   r   r   TrZ   )      ?      ?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 68,r&   c                 0    | |   j                  |||      S )NrZ   r[   r\   )r   )r   rJ   rZ   r[   r\   s        r$   _frame_value_countsr     s    d8  949 UUr&   r   columnr   functionzsort, ascending))FN)TT)TFrC   c
                     |r4|r2|r0|j                  t        j                  j                  dd             d d   j                   fdd|   }
 j                  |
|      }|dd	g   j                  |||
      }|r|j                  t        dd	g|||      }|rt        j                  ||       y |rdnd}|j                         j                  d|id      }|dv r|s|r|j                  dd|d          n|j                  dd|d          t        j                  ||       y  d   dz    d	   z    d<   |d   j                  |||
      }||_        |rD|j                   j#                  d      }|d   j$                  j'                  d      j$                  j)                  d      |d<   |d   j$                  j'                  d      j$                  j)                  d      |d	<   |d   j*                  }|j-                  ||d      }|d= |j                  dd id      }t/        j0                  |      |_        |j2                  j5                         d   r+d g|j                   j6                  dd  |j                   _        t        j                  ||       y |j                  dd|d   j$                  j'                  d      j$                  j)                  d             |j                  dd	|d   j$                  j'                  d      j$                  j)                  d             |	r|j-                  ddd      }|d= t        j                  ||       y )Nr   Fr   r   c                     d   |    dk(  S )Nr   r   r`   )xr   s    r$   <lambda>z6test_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   ra   r   r   r   reset_indexrb   insertassert_frame_equalr   r   to_framer   splitgetr   r   r   r   r   isnarR   )r   r   rZ   r   r[   r\   r   rC   r   using_infer_stringr   r   r    r#   index_frame
both_dtypeindex_frame2s   `                r$   $test_against_frame_and_seriesgroupbyr     s]   > )KKC   	
 i(//@
 	
B 
		h		7B;'(55$) 6 F 88(K!8)T9
 ""684#,<'D++-44aYQ4GH//eAivi?PQAivi?PQ!!&(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$$V,22J%,,%J?K F#&--q$ia-@L'22<@HN##((*1- )-'Hx~~/C/CAB/G'H$""68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&   rZ   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	                    |}	| 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
<   |r|	t        k(  r|j                  dddd      }t        j                  ||       y c c}w )Nr   r   Fr   r[   r   r   r   rN   zstring[pyarrow]r   r   )	r   r   r   r   r   convert_dtypesobjectr   r   )r   rZ   r[   r\   expected_rowsexpected_countexpected_group_sizeany_string_dtyper   r   r   r    r#   r   rows                  r$   test_compoundr   u  sq   ( E&&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evo??UC
 &(+% Ps   4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                 F   t        g dg dg ddg d      }|j                  | ||      }t        |t        j                  |g d      |	      }t        j                  ||       |j                  d
      j                  | ||      }	t        j                  |	|       y )Nr   r   r   r   )r*   r   r   r   )r*   r   r   r   )r{   num_legs	num_wings)falcondogcatantr   )r[   r\   rZ   rQ   r   r{   )r   r   r	   r   rW   r   r   r   )
r[   r\   rZ   r   expected_dataexpected_index
animals_dfresult_framer#   result_frame_groupbys
             r$   test_data_frame_value_countsr    s    * ,\R-J **Y) + L $$"B
 H <2%--e4AAY) 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                    | s0|j                  t        j                  j                  dd             t	        ddt
        j                  dt
        j                  ddddg	dddt
        j                  t
        j                  ddddg	ddddd	dt
        j                  d
t
        j                  g	ddddd	ddt
        j                  t
        j                  g	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   Fr   r   r   r   r1   r*   rH   r5   r3   )r   r   r   Dr   r   )r]   T)rZ   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	    s_   " KKC   	
 Q2661aA6Q2662661aA6Q1aBFFArvv6Q1aArvvrvv6		
H 
		3*\		:B__t$|_LFkG"" K<IJS8F+C0JK!!'*E?%lKH68, 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                 B   t        g dg dd| | dgd      }|j                  ||      }t        |||      }|r|t        t	        |            z  }t        j                  ||       |j                  d      j                  ||      }	t        j                  |	|       y )	Nr   )r  r  r  r  r  r  r  )r]   rZ   r   r{   )r   r   r	   r/   r   r   r   r   )
nulls_fixturer]   rZ   r   r   r   names_with_nulls_dfr   r#   r   s
             r$   #test_data_frame_value_counts_dropnar    s    B $:#]M8L	
 '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                 N   |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   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  rZ   r   r   r   r   r    r   expected_seriesir#   s                r$   =test_categorical_single_grouper_with_only_observed_categoriesr+  ;  s/   * ?  	 	
 
		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   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   rZ   r   r   r   r    r)  r*  index_levelr#   s                r$   !assert_categorical_single_grouperr2    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           	          |j                  t        j                  j                  dd             g d}t	        | |d||||       y )Nr   Fr   r  Tr   r   r  r   rZ   r   r   r   r   r   r   r2  r   r   rZ   r   r   r   r   s          r$   -test_categorical_single_grouper_observed_truer7    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           	          |j                  t        j                  j                  dd             g d}t	        | |d||||       y )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   r4  r5  r6  s          r$   .test_categorical_single_grouper_observed_falser9    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                 \   | 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   rQ   r   r*   r$  rN   r   r&  )r.  r   r   r   r	   r   r   rU   r   r'  r   r   r   r   r   r   )r   r   r  r   rZ   r   r   r   r    r)  r*  r#   s               r$   "test_categorical_multiple_groupersr@  4  s@   l  $$&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                    |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   Fr   r   r   r   r   r  r   r  r   rQ   r   r   r1   r$  rN   r   r&  )r   r   r   r   r.  r   r   r   r	   r   r   rU   r   r'  r   r   r   r   r   r   r(  s                r$   test_categorical_non_groupersrB    sa   . ?  	 	
  $$&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*   r1   )r   r   )r   rH   r   r   c                     | dk(  rdS dS )Nr   r3   r5   r`   )r*  s    r$   r   z&test_mixed_groupings.<locals>.<lambda>  s    AFq  r&   Fr   Tr[   rZ   r   )r   r   rH   r  r   level_2)r5   r5   r3   r   )r   r1   r*   )r   r   r   r7   r   intr   r   )rZ   expected_labelr  r   r   r    r#   s          r$   test_mixed_groupingsrK    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   er%  r+   level_1)r   NrN  r   crP  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]  }	g t        |	      d }}	t        |      }
d|
d<   |
j                  d       t        ||
      }t        j                  ||       y c c}	w )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  rN  rF  r
  rQ   r   r   rP  )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_duplicatesrX    s     
O%56	HB')<=M1a&137DZZxZ0==?F(($ 
 	vx04ABS49a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)NrD  r   r   r   FrF  zColumn label 'z' is duplicate of result columnr   r   )r   r   r   r   r   r   )rZ   rJ  r   msgs       r$   test_result_label_duplicatesr[    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*   rQ   r   r   )r   r   r7   r   rS  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 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   rQ  r   yra  c1c2r   r   r   r   z;Keys {'c1'} in subset cannot be in the groupby column keys.r   rc  r   r   r   r   r   r   r   r   rZ  s     r$   "test_subset_overlaps_gb_key_raisesrh  *  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)Nr_  r`  rb  re  r   z4Keys {'c3'} in subset do not exist in the DataFrame.r   rc  c3r   rf  rg  s     r$   !test_subset_doesnt_exist_in_framerl  2  sW    	/A	SB
@C	z	- 5


4%%dV%45 5 5ri  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 )Nr_  r`  rb  re  r   r   r$  rd  r   r   r*   r   ra  rQ   r   r   r   r   r   r	   r   rW   r   r   r   r    r#   s      r$   test_subsetrp  :  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   ra  ra  re  )rc  rd  rd  )r   r   r   r$  rd  r   r   r*   r   ra  )Nrd  rd  rQ   r   r   rn  ro  s      r$   test_subset_duplicate_columnsrr  F  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 )Nrk   rl   rq   r1   rr   rt   ru   rw   rx   ry   )z
2019-08-06z
2019-08-07z
2019-08-09z
2019-08-10)ri   )rm   rn   ro   rp   )r   r   r   r*   r*   r1   r   )r   r   r   r*   r*   r1   )rw   rr   rs   r   r   r   r   )r   r|   r   dtas_unitr   r   r   uniquer   rU   r	   r   r   )	ri   rv   r   r   r    dates
timestampsr   r#   s	            r$   test_value_counts_time_grouperry  X  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   rN  r_  rD  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  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   r1   r   r1   r1   r   r   r   r^   rG  )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|  rZ   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)r[   r  rG  )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|  rZ   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&   groupby_sortc                    t        g dt        j                  d      }|j                  d|      }|j	                  | |      }ddgt        j                  ggddgd	}|rg }t        dd
g g gi|}n3|s| sddg}t        dd
ddgddggi|}nddg}t        dd
ddgddggi|}t        ||dd      }	t        j                  ||	       y )Nr   )r   r   r   r^   )r[   r]   r   r*   r   )r   rR   r   r   rS  r   )r   r   r   r`   )	r   r7   r=   r   r   r   r	   r   r   )
r[   r]   r  r   r   r    rd   r   r   r#   s
             r$   test_value_counts_all_nar    s     
0	1B	Cl	+B__$v_6FQ"&&*c3Z@F4"b4V4$1v<1a&1a&!1<V<1v<1a&1a&!1<V<d%wWEH68,r&   )?__doc__numpyr7   r   pandasr   r   r   r   r   r   r	   r
   r   pandas._testing_testingr   r%   rD   r   slowparametrizereprrh   r~   r   r   r   r   fixturer   r   r   r   r   r   r  r	  rW   r=   r  r   rS  r+  r2  r7  r9  r@  rB  rK  r;   rX  r[  r]  rh  rl  rp  rr  ry  r{  r  r  r  r`   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"J""?:	
 1#J238Wbff56
 $\<@:	
4 *-=?S,TU; V56;> eT]3$ BHH9J	
 BHHST	
60 4 60r 0F $ BHH9J	
 BHHST	
&&R $ BHHFbhh	
 BHH	
"%L,M%L,^  	
$ 		
%@ $ BHH9J	
 BHHQR		
 "0!A`"0J eT]3$ BHH9J	
 BHH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&   