o
    ‡Å€gÂ›  ã                   @   sž  d Z ddlZddlZddlm  mZ ddlm	Z	m
Z
mZmZmZmZmZmZmZ ddlmZ ddlmZ dd„ Zd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jdddddggedejjddddgged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d„ ƒƒƒƒƒƒƒƒƒƒƒZej d d
dg¡d!d"„ ƒZej d#d$d%gg d&¢g¡d'd(„ ƒZej d#d$d%gg d&¢g¡d)d*„ ƒZ d+d,„ Z!d-d.„ Z"ej#d/d0„ ƒZ$d1d2„ Z%d3d4„ Z&d5d6„ Z'd7d8„ Z(ej d9g d:¢¡ej dddg¡ej d;g d<¢¡ej d=d
dg¡ej d>d
dg¡d?d@„ ƒƒƒƒƒZ)ej dAe*ej+dBe ,dC¡dDej+dEe ,dC¡dDg¡ej dFd
dg¡ej dGddg dH¢g dI¢g dJ¢fd
dg dK¢g dL¢g dM¢fd
d
g dN¢g dO¢g dP¢fg¡dQdR„ ƒƒƒZ-ej#dSdT„ ƒZ.ej dUddddVg dW¢g dX¢fd
d
ddVg dY¢g dZ¢fd
dddVg d[¢g d\¢fd
dd
d]g d^¢g d\¢fg¡d_d`„ ƒZ/ej#dadb„ ƒZ0ej dcddg dd¢g de¢fdd
g df¢g dg¢fd
dg dh¢g di¢fd
d
g dj¢g dk¢fg¡dldm„ ƒZ1ej#dndo„ ƒZ2ej dpd
dqdqgej3g dr¢g ds¢dtfdg du¢eedqgƒeg dv¢ƒedwdxej4gƒgg dy¢g dz¢g d{¢gg ds¢d|fg¡ej dddg¡d}d~„ ƒƒZ5ej d=dd
g¡ej ddd
g¡ej d€ddVej6g d¢ej7d‚fd
d]e 6g dƒ¢¡fg¡d„d…„ ƒƒƒZ8d†d‡„ Z9ej d=d
dg¡ej d€ddVej6g d¢ej7d‚fd
d]e 6g dƒ¢¡fg¡dˆd‰„ ƒƒZ:ej d=d
dg¡ej d€ddVej6g dŠ¢ej7d‚fd
d]e 6g d‹¢¡fg¡dŒd„ ƒƒZ;ej d=d
dg¡ej dŽdg d¢fd
g d¢fg¡ej d€ddVej6g d‘¢ej7d‚fd
d]e 6g d’¢¡fg¡d“d”„ ƒƒƒZ<ej d=dd
g¡ej ddd
g¡ej d€ddVej6g d¢ej7d‚fd
d]e 6g dƒ¢¡fg¡d•d–„ ƒƒƒZ=ej d—ddVg d˜¢fd
d]g dk¢fg¡d™dš„ ƒZ>ej d›dœe?dƒg dž¢fdŸe?d ƒd¡g g d¢¢fg¡ej d=dd
g¡d£d¤„ ƒƒZ@ej d¥ddg¡d¦d§„ ƒZAd¨d©„ ZBdªd«„ ZCd¬d­„ ZDd®d¯„ ZEd°d±„ ZFej d d
dg¡d²d³„ ƒZGd´dµ„ ZHej d¶d
dg¡ej dFd
dg¡d·d¸„ ƒƒZIej d¶d
dg¡ej dFd
dg¡d¹dº„ ƒƒZJdS )»z­
these are systematically testing all of the args to value_counts
with different size combinations. This is to ensure stability of the sorting
and proper parameter handling
é    N)	ÚCategoricalÚCategoricalIndexÚ	DataFrameÚGrouperÚIndexÚ
MultiIndexÚSeriesÚ
date_rangeÚto_datetime)ÚVersionc                  C   sˆ   t dgdgdœƒ} | d  d¡| d< |  d¡d  ¡ }t ddggddgd}|d  d¡|d< t |¡}tdg|d	d
}t ||¡ 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Úexpected© r#   úb/var/www/html/myenv/lib/python3.10/site-packages/pandas/tests/groupby/methods/test_value_counts.pyÚ.tests_value_counts_index_names_category_column   s   þÿ
r%   c                 C   sÞ   t ddd}ttj d¡ tdƒ|¡tj d¡ ||¡tj d¡ d|d |¡dœƒ}| rm|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Úframer#   r#   r$   Úseed_df0   s   ýÿrB   r=   TFÚnum_rowsr&   é2   Úmax_inté   é   Úkeysr*   r+   )ÚidsÚbinsÚisortznormalize, name)TÚ
proportion)Fr   ÚsortÚ	ascendingÚdropnac                 C   sº   t | ||ƒ}dd„ }|||	|
|dœ}|j||d}|d jdi |¤Ž}|j||d}|d jtjfi |¤Ž}|jjd d… dg |j_| |¡}t|||fƒ\}}t	 
| ¡ | ¡ ¡ d S )Nc                 S   s2   t t| jjt| jjƒƒƒ}tj|| jjd| _| S )N©Únames)	r9   Úmapr   Úget_level_valuesÚrangeÚnlevelsr   Úfrom_arraysrQ   )r   Úarrr#   r#   r$   Úrebuild_indexa   s   z7test_series_groupby_value_counts.<locals>.rebuild_index)Ú	normalizerM   rN   rO   rJ   ©rM   r,   éÿÿÿÿr#   )rB   r   r   Úapplyr   r   rQ   ÚrenamerR   r   r   Ú
sort_index)r=   rC   rE   rH   rJ   rK   rY   r   rM   rN   rO   r   rX   ÚkwargsÚgrÚleftÚrightr#   r#   r$   Ú test_series_groupby_value_countsG   s    û
rc   Úutcc                 C   s   t g d¢g d¢dœƒ dg¡}t|d | dd|d< | td	dd
¡}|d  ¡  ¡ }|d  tj¡ ¡ }|j	j
|j	_
| d¡}t ||¡ d S )N©i©GI]i)™J]i™J]i©êK]i)<M]iU=M]i©N]©Úapplerg   Úbananarh   Úorangeri   Úpear©Ú	TimestampÚFoodr/   rl   Ús©rd   ÚunitÚDatetimeÚ1D©ÚfreqÚkeyrm   r   )r   Údropr
   r   r   r   r^   r\   r   r   rQ   r]   r   r   )rd   r   Údfgr   r"   r#   r#   r$   Ú-test_series_groupby_value_counts_with_grouper|   s   	öÿó
rx   r   ÚAÚB)ry   rz   ÚCc                 C   sf   t | d}| | d d… ¡}|| d   ¡ }tg |jdd}tjg gt| ƒ | d|_t	 
||¡ d S )Nr   r[   r   )Údtyper   rP   )r   r   r   r   r|   r   rV   Úlenr   r   r   ©r   r   rw   r   r"   r#   r#   r$   Ú&test_series_groupby_value_counts_empty›   s   
r   c                 C   sP   t tt| ƒƒg| d}| | d d… ¡}|| d   ¡ }| ¡ }t ||¡ d S )N)Údatar   r[   )r   rT   r}   r   r   r   r   r~   r#   r#   r$   Ú(test_series_groupby_value_counts_one_row¨   s
   r   c                  C   sp   t tdgddgdƒ} |  dg¡ ¡ }t ddgt t ddg¡tddgddgdddg¡d	d
}t	 
||¡ d S )NÚaÚb)Ú
categoriesr   r   Fr   )r„   Úorderedr|   r   ©r€   r   r   )r   r   r   r   r   rV   r5   Úarrayr   r   r   )rn   r   r"   r#   r#   r$   Ú/test_series_groupby_value_counts_on_categorical´   s   ÿþÿörˆ   c                  C   s–   t g d¢g d¢g d¢dœƒ} | jddgddd	 }|jdd}td
dgddgg d¢gg d¢g d¢g d¢gg d¢d}tg d¢|dd}t ||¡ d S )N©ÚmalerŠ   r   rŠ   r   rŠ   ©ÚlowÚmediumÚhighrŒ   rŽ   rŒ   ©r   ÚFRr   r   r   r   ©r   Ú	educationr   r   r   FrZ   r’   r   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ÚcodesrQ   ©r   r   r   r(   r   r   r   )r   r   r   r   r   r   r   )r   Úgbr   r   r"   r#   r#   r$   Ú(test_series_groupby_value_counts_no_sortÏ   s   ýÿýr™   c                   C   s   t g d¢g d¢g d¢dœƒS )Nr‰   r‹   r   r‘   ©r   r#   r#   r#   r$   Úeducation_dfã   s   ýÿr›   c                 C   s|   d}t jt|d | jddd}W d   ƒ n1 sw   Y  tjtdd | ¡  W d   ƒ d S 1 s7w   Y  d S )Nz+DataFrame.groupby with axis=1 is deprecated©Úmatchr   r   ©ÚaxisrŸ   )r   Úassert_produces_warningÚFutureWarningr   ÚpytestÚraisesÚNotImplementedErrorr   )r›   ÚmsgÚgpr#   r#   r$   Ú	test_axisî   s   ÿ
"ÿr§   c                 C   sL   |   d¡}tjtdd |jdgd W d   ƒ d S 1 sw   Y  d S )Nr   Úsubsetrœ   ©r¨   )r   r¢   r£   Ú
ValueErrorr   )r›   r¦   r#   r#   r$   Útest_bad_subsetö   s   
"ÿr«   c                 C   sv   t tjƒt dƒkr| tjjddd¡ |  d¡ddg jdd	}t	g d
¢t
jg d¢g d¢ddd}t ||¡ d S )Nú1.25úYpandas default unstable sorting of duplicatesissue with numpy>=1.25 with AVX instructionsF©ÚreasonÚstrictr   r   r’   T©rY   )ç      à?ç      Ð?r³   r²   r²   )©r   rŠ   rŒ   ©r   r   rŽ   ©r   rŠ   r   ©r   r   rŽ   ©r   rŠ   rŒ   r“   rP   rL   r†   )r   r5   Ú__version__Úapplymarkerr¢   ÚmarkÚxfailr   r   r   r   Úfrom_tuplesr   r   )r›   Úrequestr   r"   r#   r#   r$   Ú
test_basicü   s&   ûÿ	ÿø
ôr¿   c                 C   s   | | j |||dS )N©rY   rM   rN   )r   )r   rH   rY   rM   rN   r#   r#   r$   Ú_frame_value_counts  s   rÁ   r   ©Úcolumnr‡   Úfunctionzsort, ascending))FN)TT)TFÚas_indexrA   c	                    sˆ  t tjƒt dƒkr|r|r|r| tjjddd¡ dˆ d j‡ fdd„dœ| }	ˆ j|	|d	}
|
d
dg j	|||d}|r¾|dkrDt
nd }d}tj||d |
 td
dg|||¡}W d   ƒ n1 sew   Y  |rtt ||¡ d S |rxdnd}| ¡ jd|idd}|dkrž|jddidd}t |d dd¡|d< n|dkr«|d dk|d< nt |d dd¡|d< t ||¡ d S ˆ d
 d ˆ d  ˆ d< |
d j	|||d}||_|r|jjdd}|d j d¡j d¡|d
< |d j d¡j d¡|d< |d= |jdd idd}t |¡|_t ||¡ d S | dd
|d j d¡j d¡¡ | dd|d j d¡j d¡¡ |d= t ||¡ d S )Nr¬   r­   Fr®   r   c                    s   ˆ d |  dkS )Nr   r   r#   )Úx©r›   r#   r$   Ú<lambda>D  ó    z6test_against_frame_and_seriesgroupby.<locals>.<lambda>rÂ   )ÚbyrÅ   r   r’   rÀ   rÃ   z7DataFrameGroupBy.apply operated on the grouping columnsrœ   rL   r   r   r   rž   Úlevel_0r   r   rÄ   ú-Úboth©r   r(   )r   r5   r¹   rº   r¢   r»   r¼   Úvaluesr   r   ÚDeprecationWarningr   r    r\   rÁ   r   Úreset_indexr]   ÚwhereÚassert_frame_equalr   r   Úto_frameÚstrÚsplitÚgetr   r   Úinsert)r›   r   rY   r   rM   rN   rÅ   rA   r¾   rÊ   r¦   r   Úwarnr¥   r"   Úindex_framer#   rÇ   r$   Ú$test_against_frame_and_seriesgroupby   sj   ûÿ

ýüÿÿÿÿ""rÛ   r|   zstring[pyarrow_numpy]Úpyarrow)Úmarksústring[pyarrow]rY   zCsort, ascending, expected_rows, expected_count, expected_group_size)r   r   r(   r/   é   r—   )r   r/   r   r/   r   )r/   r   r   r(   rß   )r(   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                    sæ   ˆ  |¡‰ˆj  |¡ˆ_ˆjddgddd}|d j|||d}	tƒ }
dD ]‰ ‡ ‡fdd	„|D ƒ|
ˆ < |
  |¡}
|
j  |¡|
_q%|r[||
d
< |
d
  |  < |dkrZ|
d
  ¡ |
d
< n||
d< |dkrk|
d  ¡ |
d< t |	|
¡ d S )Nr   r   F©rÅ   rM   r’   rÀ   r“   c                    ó   g | ]}ˆˆ  | ‘qS r#   r#   ©Ú.0Úrow©rÃ   r›   r#   r$   Ú
<listcomp>›  ó    z!test_compound.<locals>.<listcomp>rL   rÞ   r   )r   r   r   r   r   Úconvert_dtypesr   rÓ   )r›   rY   rM   rN   Úexpected_rowsÚexpected_countÚexpected_group_sizer|   r¦   r   r"   r#   rå   r$   Útest_compoundw  s*   
ÿ
€rì   c                   C   s$   t g d¢g d¢g d¢dœg d¢dS )N©r   r   r   r   )r(   rß   rß   é   )r(   r   r   r   ©ru   Únum_legsÚ	num_wings)ÚfalconÚdogÚcatÚantrÎ   rš   r#   r#   r#   r$   Ú
animals_dfª  s   þ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   rL   )r²   r³   r³   c           
      C   s^   | j |||d}t|tj|g d¢d|d}t ||¡ |  d¡j |||d}	t |	|¡ d S )N)rM   rN   rY   rï   rP   r†   ru   )r   r   r   rV   r   r   r   )
rö   rM   rN   rY   r   Úexpected_dataÚexpected_indexÚresult_framer"   Úresult_frame_groupbyr#   r#   r$   Útest_data_frame_value_counts²  s   ÿÿû
ÿr   c                  C   s`   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î   r/   r(   rF   r3   r1   )ry   rz   r{   ÚD)r5   r;   r   )r>   r#   r#   r$   Únulls_dfÚ  s   üÿr  z:group_dropna, count_dropna, expected_rows, expected_values)	r   r   r/   rF   r1   rî   r3   r(   rß   )	r²   r²   ç      ð?r³   r³   r³   r³   r  r  )r   r   r/   rF   r(   rß   )r²   r²   r  r  r  r  )r   r   rF   r1   rî   r3   )r²   r²   r³   r³   r³   r³   )r   r   rF   )r²   r²   r  c                    s    t tjƒt dƒkr|s| tjjddd¡ ˆjddg|d}|jdd|d	}t	ƒ }ˆj
D ]‰ ‡ ‡fd
d„|D ƒ|ˆ < q-t |¡}	t||	dd}
t ||
¡ d S )Nr¬   r­   Fr®   ry   rz   )rO   T)rY   rM   rO   c                    rá   r#   r#   râ   ©rÃ   r  r#   r$   ræ     rç   z,test_dropna_combinations.<locals>.<listcomp>rL   r†   )r   r5   r¹   rº   r¢   r»   r¼   r   r   r   r   r   r   r   r   r   )r  Úgroup_dropnaÚcount_dropnaré   Úexpected_valuesr¾   r¦   r   r   r   r"   r#   r  r$   Útest_dropna_combinationsç  s   ûÿ	

r  c                 C   s    t g d¢g d¢d| | dgdœƒS )Nrí   )ÚJohnÚAnner	  ÚBethÚSmithÚLouise©ru   Ú
first_nameÚmiddle_namerš   )Únulls_fixturer#   r#   r$   Únames_with_nulls_df  s   
ýÿr  z%dropna, expected_data, expected_indexr   )©r   r   )r  r	  )r  r  r  rP   rí   )r
  r  r	  r  r  )r   r   r   r   )r   r   r(   r(   )r(   r   r   r(   r”   c           	      C   s`   | j ||d}t|||d}|r|tt|ƒƒ }t ||¡ |  d¡j ||d}t ||¡ d S )N)rO   rY   r†   ru   )r   r   r-   r}   r   r   r   )	r  rO   rY   r   rü   rý   rþ   r"   rÿ   r#   r#   r$   Ú#test_data_frame_value_counts_dropna  s   !ý
ÿ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                 C   sÒ   t tjƒt dƒkr| tjjddd¡ |  d¡jd||d}|j	|d}t
jg d	¢g d
¢d}	t||	|d}
tdƒD ]}|
jjt|
jj| ƒ|d|
_q;|rWt ||
¡ d S |
j|r]dndd}t ||¡ 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“   rP   r†   r/   ©ÚlevelrL   r   ©r   )r   r5   r¹   rº   r¢   r»   r¼   r   r   r   r   r½   r   rT   r   Ú
set_levelsr   r•   r   r   rÑ   rÓ   ©r›   rÅ   r  rY   r   rü   r¾   r¦   r   rý   Úexpected_seriesÚir"   r#   r#   r$   Ú=test_categorical_single_grouper_with_only_observed_categoriesJ  s<   ûÿ

ÿñý
ÿ
ÿr(  c                 C   sÖ   |   ¡  d¡} | d j dg¡| d< | jd||d}|j|d}t|tj|g d¢d|d}	t	d	ƒD ] }
t
|	jj|
 ƒ}|
d
krI| | d jj¡}|	jj||
d|	_q2|r]t ||	¡ d S |	j|d}t ||¡ d S )Nr   r   ÚASIAr  r±   r“   rP   r†   r/   r   r!  r#  )Úcopyr   rô   Úadd_categoriesr   r   r   r   r½   rT   r   r   r•   Úset_categoriesr„   r$  r   r   rÑ   rÓ   )r›   rÅ   r  rý   rY   r   rü   r¦   r   r&  r'  Úindex_levelr"   r#   r#   r$   Ú!assert_categorical_single_grouper•  s.   þú
ÿr.  c              	   C   sJ   t tjƒt dƒkr| tjjddd¡ g d¢}t| |d||||d d S )Nr¬   r­   Fr®   r  T©r›   rÅ   r  rý   rY   r   rü   ©r   r5   r¹   rº   r¢   r»   r¼   r.  ©r›   rÅ   rY   r   rü   r¾   rý   r#   r#   r$   Ú-test_categorical_single_grouper_observed_true¸  s"   ûÿ

ùr2  )r(   r   r   r   r   r   r   r   r   r   r   r   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              	   C   sJ   t tjƒt dƒkr| tjjddd¡ g d¢}t| |d||||d 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/  r0  r1  r#   r#   r$   Ú.test_categorical_single_grouper_observed_falseò  s"   ,ûÿ

ùr3  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Š   )r4  r5  r6  r7  r8  )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                 C   sÜ   |   ¡ } | d  d¡| d< | d  d¡| d< | jddg||d}|j|d}t|r/||dk n|tj|g d¢d|d	}	td
ƒD ]}
|	jj	t
|	jj|
 ƒ|
d|	_q@|r\t ||	¡ d S |	j|rbdndd}t ||¡ d S )Nr   r   r’   r  r±   r  )r   r’   r   rP   r†   r(   r!  rL   r   r#  )r*  r   r   r   r   r   r½   rT   r   r$  r   r•   r   r   rÑ   rÓ   )r›   rÅ   r  rý   rY   r   rü   r¦   r   r&  r'  r"   r#   r#   r$   Ú"test_categorical_multiple_groupersI  s2   7
ÿþú
ÿ
ÿr9  c                 C   sú   t tjƒt dƒkr| tjjddd¡ |  ¡ } | d  d¡| d< | d  d¡| d< | j	d||d	}|j
|d
}g d¢}	t|tj|	g d¢d|d}
tddƒD ]}|
jjt|
jj| ƒ|d|
_qO|rkt ||
¡ d S |
j|rqdndd}t ||¡ d S )Nr¬   r­   Fr®   r   r   r’   r   r  r±   r  r“   rP   r†   r   r/   r!  rL   r   r#  )r   r5   r¹   rº   r¢   r»   r¼   r*  r   r   r   r   r   r½   rT   r   r$  r   r•   r   r   rÑ   rÓ   r%  r#   r#   r$   Útest_categorical_non_groupersŸ  s>   ûÿ
þú
ÿ
ÿr:  z*normalize, expected_label, expected_valuesrø   c                 C   s†   t g d¢g d¢dœƒ}|jg d¢ddd„ gdd	}|jd
| d}t dtjg d¢tddg d¢dg d¢dg d¢||iƒ}t ||¡ d S )Nr÷   ©r   r(   r/   )ry   rz   )rß   rF   rß   ry   c                 S   s   | dkrdS dS )Nr   r1   r3   r#   )r'  r#   r#   r$   rÈ   ÷  rÉ   z&test_mixed_groupings.<locals>.<lambda>F©rÅ   T©rM   rY   rË   )rß   rß   rF   r  rú   Úlevel_2)r3   r3   r1   rz   )r   r/   r(   )r   r   r   r5   r‡   Úintr   rÓ   )rY   Úexpected_labelr  r   r¦   r   r"   r#   r#   r$   Útest_mixed_groupingsí  s   	ûÿ	rA  ztest, columns, expected_namesÚrepeatÚabbde)r‚   NÚdrƒ   rƒ   Úer"  r)   Úlevel_1)r‚   NrD  rƒ   ÚcrF  c           
      C   s¼   t g d¢g d¢g|d}ddg}dtjddgtjd	d
g}|j||d ¡ }|r<tdtj||ddd}t	 
||¡ d S dd„ |D ƒ}t|ƒ}	d|	d< |	 d¡ t ||	d}t	 ||¡ d S )N)r   r/   rF   r1   r4   )r(   rß   rî   r3   r&   r   )r   r   r1   r/   rF   r4   )r(   r   r3   rß   rî   r&   r‚   r   r   r  rD  r<  r  rP   r   r†   c                 S   s   g | ]	}t |ƒd g ‘qS )r   )r9   râ   r#   r#   r$   ræ     s    z0test_column_label_duplicates.<locals>.<listcomp>rF  )r   r5   r‡   Úint64r   r   r   r   r½   r   r   r9   ÚappendrÓ   )
Útestr   Úexpected_namesrÅ   r   rü   rH   r   r"   Úexpected_columnsr#   r#   r$   Útest_column_label_duplicates  s(   þú
rM  znormalize, expected_labelc                 C   sn   t g d¢gdd|gdjddd}d|› d}tjt|d	 |j| d
 W d   ƒ d S 1 s0w   Y  d S )Nr;  r‚   rƒ   r   Fr<  zColumn label 'z' is duplicate of result columnrœ   r±   )r   r   r¢   r£   rª   r   )rY   r@  r˜   r¥   r#   r#   r$   Útest_result_label_duplicates'  s   	ÿ"ÿrN  c                  C   sf   t dddgiƒ} |  tjddgtjd¡}| ¡ }tdgtjddggd dgddd}t	 
||¡ d S )Nr‚   r   r  r(   rP   r   r   )r   r   r5   r‡   rH  r   r   r   r½   r   r   )r   r˜   r   r"   r#   r#   r$   Útest_ambiguous_grouping8  s   ÿrO  c                  C   sj   t g d¢g d¢dœg d¢d} d}tjt|d |  d¡jdgd	 W d   ƒ d S 1 s.w   Y  d S )
N©r‚   rƒ   rG  ©rÆ   ÚyrR  ©Úc1Úc2©r   r   r   rÎ   z;Keys {'c1'} in subset cannot be in the groupby column keys.rœ   rT  r©   ©r   r¢   r£   rª   r   r   ©r   r¥   r#   r#   r$   Ú"test_subset_overlaps_gb_key_raisesC  ó
   "ÿrY  c                  C   sj   t g d¢g d¢dœg d¢d} d}tjt|d |  d¡jd	gd
 W d   ƒ d S 1 s.w   Y  d S )NrP  rQ  rS  rV  rÎ   z4Keys {'c3'} in subset do not exist in the DataFrame.rœ   rT  Úc3r©   rW  rX  r#   r#   r$   Ú!test_subset_doesnt_exist_in_frameK  rZ  r\  c                  C   sp   t g d¢g d¢dœg d¢d} | jddjdgd	}td
dgtjdd
gddggd dgddd}t ||¡ d S )NrP  rQ  rS  rV  rÎ   r   r!  rU  r©   r   r(   rÆ   rR  rP   r   r   ©r   r   r   r   r   rV   r   r   ©r   r   r"   r#   r#   r$   Útest_subsetS  s   ýr_  c                  C   s€   t g d¢g d¢g d¢gg d¢g d¢d} | jddjdgd	}td
dgtjdd
gddgddggg d¢ddd}t ||¡ d S )N)r‚   rÆ   rÆ   )rƒ   rR  rR  rV  )rT  rU  rU  )r   r   r   r!  rU  r©   r   r(   rÆ   rR  )NrU  rU  rP   r   r   r]  r^  r#   r#   r$   Útest_subset_duplicate_columns_  s   ýÿûr`  c           	      C   sÄ   t g d¢g d¢dœƒ dg¡}t|d | ddj |¡|d< | td	dd
¡}| ¡ }tg d¢| d |¡}|d  ¡ }t	||g d¢gg d¢t
dƒg d¢gg d¢d}td|dd}t ||¡ d S )Nre   rf   rk   r/   rl   rn   ro   rq   rr   rs   )z
2019-08-06z
2019-08-07z
2019-08-09z
2019-08-10)rd   )rg   rh   ri   rj   )r   r   r   r(   r(   r/   rî   )r   r   r   r(   r(   r/   )rq   rl   rm   r”   r   r   r   )r   rv   r
   ÚdtÚas_unitr   r   r   Úuniquer   rT   r   r   r   )	rd   rp   r   r˜   r   ÚdatesÚ
timestampsr   r"   r#   r#   r$   Útest_value_counts_time_grouperq  s.   	öÿóÿþýrf  c                  C   sj   t g d¢g d¢g d¢dœƒ} | jddgddd}|d	  ¡ }t g d¢g d¢g d¢dd
œƒ}t ||¡ d S )N)r‚   r‚   r‚   )r‚   r‚   rD  rP  r;  r   r(   Frà   r/   )r   r(   r/   r   )r   r   r   r   rÓ   )r   r¦   r   r"   r#   r#   r$   Ú!test_value_counts_integer_columns“  s   ÿrg  Úvc_sortc           
      C   sà   t g d¢g d¢dœƒ}|jd| d}|j||d}|r g d¢}ng d¢}td	d
gddggg d¢g d¢gddgd}t|||r@dndd}| rM|rMg d¢}	n| rV|sVg d¢}	n| s_|r_g d¢}	ng d¢}	| |	¡}t ||¡ d S )N©r(   r   r   r   ©r/   rß   r/   r/   ©r‚   r   r‚   rZ   r=  )çUUUUUUå?çUUUUUUÕ?r  rû   r   r(   r/   rß   )r   r   r   )r   r   r   r   r”   rL   r   r   )r   r   r(   )r   r(   r   )r(   r   r   )r   r   r   r   r   Útaker   r   )
rM   rh  rY   r   r˜   r   rÏ   r   r"   Útakerr#   r#   r$   Útest_value_counts_sortž  s&   
"ÿ



rp  c           
      C   sä   t g d¢g d¢dœdd}|jd| dd}|j||d	}|r#g d
¢}ng d¢}|r+dnd}t dtg d¢ƒdtg d¢ƒ||iƒ ddg¡| }| rO|rOg d¢}	n| rX|sXg d¢}	n| sa|rag d¢}	ng d¢}	| |	¡}t ||¡ d S )Nri  rj  rk  r   r  r‚   T)rM   r  r=  )rl  rm  r  r  )r(   r   r   r   rL   r   )r   r   r(   r(   r   )r/   rß   r/   rß   )r   r   r(   r/   )r   r(   r   r/   )r(   r/   r   r   )r   r   r   r   Ú	set_indexrn  r   r   )
rM   rh  rY   r   r˜   r   rÏ   r   r"   ro  r#   r#   r$   Ú"test_value_counts_sort_categorical»  s0   
ýÿú



rr  )KÚ__doc__Únumpyr5   r¢   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr   r   r   r   r   r   r   r	   r
   Úpandas._testingÚ_testingr   Úpandas.util.versionr   r%   rB   r»   ÚslowÚparametrizeÚreprrc   rx   r   r   rˆ   r™   Úfixturer›   r§   r«   r¿   rÁ   rÛ   ÚobjectÚparamÚ
skip_if_norì   rö   r   r  r  r  rV   r;   r  r‡   rH  r(  r.  r2  r3  r9  r:  rA  r9   rM  rN  rO  rY  r\  r_  r`  rf  rg  rp  rr  r#   r#   r#   r$   Ú<module>   sâ   ,*




 þKýþýþ"
úüþ

ü÷þ


þý	
ýùý÷þýýúþ:#ýýúþ*
ÿýÿýøþ&0þþîþ ýüúþ%ýüúþ<þþ
þþþþ


!