o
    ÉCâh÷  ã                   @   sX  d Z ddlZddlZddlmZmZmZmZm	Z	m
Z
mZmZmZ ddlmZ ddlmZ d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 dAd
dg¡ej dBddg dC¢g dD¢g dE¢fd
dg dF¢g dG¢g dH¢fd
d
g dI¢g dJ¢g dK¢fg¡dLdM„ ƒƒZ&ejdNdO„ ƒZ'ej dPddddQg dR¢g dS¢fd
d
ddQg dT¢g dU¢fd
dddQg dV¢g dW¢fd
dd
dXg dY¢g dW¢fg¡dZd[„ ƒZ(ejd\d]„ ƒZ)ej d^ddg d_¢g d`¢fdd
g da¢g db¢fd
dg dc¢g dd¢fd
d
g de¢g df¢fg¡dgdh„ ƒZ*ejdidj„ ƒZ+ej dkd
dldlge
j,g dm¢g dn¢dofdg dp¢e
e	dlgƒe	g dq¢ƒe	drdsej-gƒgg dt¢g du¢g dv¢gg dn¢dwfg¡ej dddg¡dxdy„ ƒƒZ.ej d=dd
g¡ej dzdd
g¡ej d{ddQej/g d|¢ej0d}fd
dXe /g d~¢¡fg¡dd€„ ƒƒƒZ1dd‚„ Z2ej d=d
dg¡ej d{ddQej/g d|¢ej0d}fd
dXe /g d~¢¡fg¡dƒd„„ ƒƒZ3ej d=d
dg¡ej d{ddQej/g d…¢ej0d}fd
dXe /g d†¢¡fg¡d‡dˆ„ ƒƒZ4ej d=d
dg¡ej d‰dg dŠ¢fd
g d‹¢fg¡ej d{ddQej/g dŒ¢ej0d}fd
dXe /g d¢¡fg¡dŽd„ ƒƒƒZ5ej d=dd
g¡ej dzdd
g¡ej d{ddQej/g d|¢ej0d}fd
dXe /g d~¢¡fg¡dd‘„ ƒƒƒZ6ej d’ddQg d“¢fd
dXg df¢fg¡d”d•„ ƒZ7ej d–d—e8d˜ƒg d™¢fdše8d›ƒdœg g d¢fg¡ej d=dd
g¡dždŸ„ ƒƒZ9ej d ddg¡d¡d¢„ ƒZ:d£d¤„ Z;d¥d¦„ Z<d§d¨„ Z=d©dª„ Z>d«d¬„ Z?ej d d
dg¡d­d®„ ƒZ@d¯d°„ ZAej d±d
dg¡ej dAd
dg¡d²d³„ ƒƒZBej d±d
dg¡ej dAd
dg¡d´dµ„ ƒƒZCdS )¶z­
these are systematically testing all of the args to value_counts
with different size combinations. This is to ensure stability of the sorting
and proper parameter handling
é    N)	ÚCategoricalÚCategoricalIndexÚ	DataFrameÚGrouperÚIndexÚ
MultiIndexÚSeriesÚ
date_rangeÚto_datetime)ÚVersionc                  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#   ú€/var/www/html/myvaluetrips/my_value_trip_new/venv/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_df.   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_index_   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_countsE   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_grouperz   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 |¡|_|j ¡ d r$d g|jjdd …  |j_t ||¡ d S | dd
|d j d¡j d¡¡ | dd|d j d¡j d¡¡ |	rY|  dddœ¡}|d= t ||¡ d S )Nr¬   r­   Fr®   r   c                    s   ˆ d |  dkS )Nr   r   r#   )Úx©r›   r#   r$   Ú<lambda>K  ó    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(   Ústr)r   r’   )!r   r5   r¹   rº   r¢   r»   r¼   Úvaluesr   r   r¡   r   r    r\   rÁ   r   Úreset_indexr]   ÚwhereÚassert_frame_equalr   r   Úto_framerÏ   ÚsplitÚgetr   r   r   ÚisnarQ   Úinsertr   )r›   r   rY   r   rM   rN   rÅ   rA   r¾   Úusing_infer_stringrÊ   r¦   r   Úwarnr¥   r"   Úindex_frameÚindex_frame2r#   rÇ   r$   Ú$test_against_frame_and_seriesgroupby  sr    ûÿ

ýüÿÿÿÿ""rÝ   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r\|d
  ¡ |d
< n||d< |	dkrm|d  ¡ |d< |r||	tkr||  dd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   zstring[pyarrow]r   rÏ   )	r   r   r   r   r   Úconvert_dtypesÚobjectr   rÓ   )r›   rY   rM   rN   Úexpected_rowsÚexpected_countÚexpected_group_sizeÚany_string_dtyperÙ   r|   r¦   r   r"   r#   rä   r$   Útest_compound†  s4   
ÿ
€
ÿ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_categoriesY  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"   ûÿ

ùr3  )r(   r   r   r   r   r   r   r   r   r   r   r   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   r0  r1  r2  r#   r#   r$   Ú.test_categorical_single_grouper_observed_false  s"   ,ûÿ

ùr4  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Š   )r5  r6  r7  r8  r9  )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_groupersX  s2   7
ÿþú
ÿ
ÿr:  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   	ûÿ	rB  ztest, columns, expected_namesÚrepeatÚabbde)r‚   NÚdrƒ   rƒ   Úer#  r)   Úlevel_1)r‚   NrE  rƒ   ÚcrG  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  rE  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>rG  )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(   þú
rN  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   rA  r˜   r¥   r#   r#   r$   Útest_result_label_duplicates6  s   	ÿ"ÿrO  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‡   rI  r   r   r   r½   r   r   )r   r˜   r   r"   r#   r#   r$   Útest_ambiguous_groupingG  s   ÿrP  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ƒ   rH  ©rÆ   ÚyrS  ©Úc1Úc2©r   r   r   rÎ   z;Keys {'c1'} in subset cannot be in the groupby column keys.rœ   rU  r©   ©r   r¢   r£   rª   r   r   ©r   r¥   r#   r#   r$   Ú"test_subset_overlaps_gb_key_raisesR  ó
   "ÿrZ  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 )NrQ  rR  rT  rW  rÎ   z4Keys {'c3'} in subset do not exist in the DataFrame.rœ   rU  Úc3r©   rX  rY  r#   r#   r$   Ú!test_subset_doesnt_exist_in_frameZ  r[  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 )NrQ  rR  rT  rW  rÎ   r   r"  rV  r©   r   r(   rÆ   rS  rP   r   r   ©r   r   r   r   r   rV   r   r   ©r   r   r"   r#   r#   r$   Útest_subsetb  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ƒ   rS  rS  rW  )rU  rV  rV  )r   r   r   r"  rV  r©   r   r(   rÆ   rS  )NrV  rV  rP   r   r   r^  r_  r#   r#   r$   Útest_subset_duplicate_columnsn  s   ýÿûra  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_grouper€  s.   	öÿóÿþýrg  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‚   rE  rQ  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   ÿrh  Ú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   ri  rY   r   r˜   r   rÐ   r   r"   Útakerr#   r#   r$   Útest_value_counts_sort­  s&   
"ÿ



rq  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 )Nrj  rk  rl  r   r  r‚   T)rM   r  r>  )rm  rn  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_indexro  r   r   )
rM   ri  rY   r   r˜   r   rÐ   r   r"   rp  r#   r#   r$   Ú"test_value_counts_sort_categoricalÊ  s0   
ýÿú



rs  )DÚ__doc__Únumpyr5   r¢   Ú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Ý   rí   r÷   r  r  r	  r  rV   r;   r  r‡   rI  r)  r/  r3  r4  r:  r;  rB  r9   rN  rO  rP  rZ  r]  r`  ra  rg  rh  rq  rs  r#   r#   r#   r$   Ú<module>   sÒ   ,*




 þ\ýþ*
úüþ

ü÷þ


þý	
ýùý÷þýýúþ:#ýýúþ*
ÿýÿýøþ&0þþîþ ýüúþ%ýüúþ<þþ
þþþþ


!