U
    ¾mœd…  ã                   @   sø  d Z ddlm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„ Zdd„ Zg Zg Zd	D ]˜Zed
dƒD ]ˆ\ZZeeeeƒZde deded  ¡ ƒd d¡fZddddgfZeeeƒD ]6\ZZ e !eee eef¡ e !e› de› de› �¡ qÒq‚qtej"j#ej"j$de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d$d%d&gg¡d'd(„ ƒZ'ej" $d#d$d%gd$d%d&gg¡d)d*„ ƒZ(d+d,„ Z)d-d.„ Z*ej+d/d0„ ƒZ,d1d2„ Z-d3d4„ Z.d5d6„ Z/d7d8„ Z0ej" $d9d:d;d<g¡ej" $dddg¡ej" $d=d>d?d	g¡ej" $d@ddg¡ej" $dAddg¡dBdC„ ƒƒƒƒƒZ1ej" $dDddg¡ej" $dEddddddFdGgdddddgddFddFdgfdddGdFdddgdddddgddFdFddgfdddGddFddgdddddgddFdFddgfg¡dHdI„ ƒƒZ2ej+dJdK„ ƒZ3ej" $dLddddMdddgdNdOdPgfddddMdddgdNdQdPgfddddMdddgdNdRdSgfddddTdUdVdVgdNdRdSgfg¡dWdX„ ƒZ4ej+dYdZ„ ƒZ5ej" $d[dddddFdd\d]d^ddGg	dUdUd_dVdVdVdVd_d_g	fdddddFdddGgdUdUd_d_d_d_gfdddddd\d]d^gdUdUdVdVdVdVgfdddddgdUdUd_gfg¡d`da„ ƒZ6ej+dbdc„ ƒZ7ej" $dddddgej8dedfdggdhdidjgdk�fdddddgeedgƒedldmdngƒedodpej9gƒgddddgddddgddddggdhdidjgdq�fg¡ej" $dddg¡drds„ ƒƒZ:ej" $d@ddg¡ej" $dtddg¡ej" $duddMej;ddddddddddddgej<dv�fddTe ;dUdVdVdwdwdwdUdUdwdwdwdwg¡fg¡dxdy„ ƒƒƒZ=dzd{„ Z>ej" $d@ddg¡ej" $duddMej;ddddddddddddgej<dv�fddTe ;dUdVdVdwdwdwdUdUdwdwdwdwg¡fg¡d|d}„ ƒƒZ?ej" $d@ddg¡ej" $duddMej;ddddddddddddddddddgej<dv�fddTe ;dUdVdVdwdwdwdUdUdwdwdwdwdwdwdwdwdwdwg¡fg¡d~d„ ƒƒZ@ej" $d@ddg¡ej" $d€dd�d‚dƒd„d…d†d‡dˆd‰dŠd‹dŒgfdd�dƒd…d‡d‰gfg¡ej" $duddMej;ddddddddddddgej<dv�fddTe ;d_dwd_dwd_dwd_dwd_dwdwdwg¡fg¡d�dŽ„ ƒƒƒZAej" $d@ddg¡ej" $dtddg¡ej" $duddMej;ddddddddddddgej<dv�fddTe ;dUdVdVdwdwdwdUdUdwdwdwdwg¡fg¡d�d�„ ƒƒƒZBej" $d‘ddMdddgfddTdUdUd_gfg¡d’d“„ ƒZCej" $d”d•eDd–ƒd—dd˜d™d™dšgfd›eDdœƒd�g d—dd˜d™džd�gfg¡ej" $d@ddg¡dŸd „ ƒƒZEej" $d¡ddg¡d¢d£„ ƒZFd¤d¥„ ZGd¦d§„ ZHd¨d©„ ZIdªd«„ ZJd¬d­„ ZKej" $d ddg¡d®d¯„ ƒZLd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
é    )ÚproductN)	ÚCategoricalÚCategoricalIndexÚ	DataFrameÚGrouperÚIndexÚ
MultiIndexÚSeriesÚ
date_rangeÚto_datetimec                  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ÚresultZdf_mi_expectedZmi_expectedÚexpected© r!   ú_/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/groupby/test_value_counts.pyÚ.tests_value_counts_index_names_category_column   s    þÿ
r#   c                 C   sØ   t j d¡ tddd�}tt j tdƒ|¡t j ||¡t j d|d |¡dœƒ}| rÔ|d  d	¡|d< t j	|j
dd d
…df< t j	|j
dd d…df< t j	|j
dd d…df< t j	|j
dd d…df< t j	|j
dd d…df< |S )NiÒ  z
2015-08-24é
   )ZperiodsÚabcdr   )Ú1stÚ2ndÚ3rdr(   Úfloaté   r&   é   é   r'   é   é   é   é	   )ÚnpÚrandomÚseedr
   r   ÚchoiceÚlistÚrandintr   ÚnanÚloc)Ú	seed_nansÚnÚmÚdaysÚframer!   r!   r"   Úseed_df/   s     ýÿr>   )TF)éd   iè  )é   é   r@   r(   r   é   r&   r'   ú-zdf, keys, bins, n, m)ÚidsÚisortTFznormalize, name)TÚ
proportion)Fr   ÚsortÚ	ascendingÚdropnac                 C   s¦   dd„ }|||	|
|dœ}| j ||d�}|d jf |Ž}| j ||d�}|d jtjf|Ž}|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)	r5   Úmapr   Zget_level_valuesÚrangeZnlevelsr   Úfrom_arraysrK   )r   Zarrr!   r!   r"   Úrebuild_index^   s    z7test_series_groupby_value_counts.<locals>.rebuild_index)Ú	normalizerG   rH   rI   Úbins©rG   r(   éÿÿÿÿ)r   r   Úapplyr	   r   rK   ÚrenamerL   r   r   Ú
sort_index)r   ÚkeysrQ   r:   r;   rE   rP   r   rG   rH   rI   rO   ÚkwargsÚgrÚleftÚrightr!   r!   r"   Ú test_series_groupby_value_countsT   s    
û
r\   Úutcc              	   C   s¤   t dddddddgddd	d	d
d
dgdœƒ dg¡}t|d | dd�|d< | tddd�¡}|d  ¡  ¡ }|d  tj¡ ¡ }|j	j
|j	_
| d¡}t ||¡ d S )Né©GI]é)™J]é�™J]é©êK]é)<M]éU=M]é©�N]ÚappleÚbananaÚorangeÚpear©Ú	TimestampÚFoodr+   rj   Ús©r]   ÚunitÚDatetimeÚ1D©ÚfreqÚkeyrk   r   )r   Údropr   r   r   r   rV   rT   r	   r   rK   rU   r   r   )r]   r   Údfgr   r    r!   r!   r"   Ú-test_series_groupby_value_counts_with_groupery   s*    ù	öÿó
rv   r   ÚAÚBÚCc                 C   sf   t | d�}| | d d… ¡}|| d   ¡ }tg |jdd�}tjg gt| ƒ | d�|_t	 
||¡ d S )Nr   rS   r   )Údtyper   rJ   )r   r   r   r	   rz   r   rN   Úlenr   r   r   ©r   r   ru   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   rS   )r   rM   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‚   Zorderedrz   r   ©r~   r   r   )r	   r   r   r   r   rN   r1   Úarrayr   r   r   )rl   r   r    r!   r!   r"   Ú/test_series_groupby_value_counts_on_categorical±   s"       ÿþÿör…   c               	   C   sÊ   t ddddddgddddddgddddddgdœƒ} | jd	d
gdd�d }|jdd�}tddgddgdddggdddddgdddddgdddddggd	d
dgd�}tdddddg|dd�}t ||¡ d S )NÚmaler   ÚlowÚmediumÚhighr   ÚFR©r   Ú	educationr   r   r   FrR   rŒ   r   r   rB   ©ÚlevelsÚcodesrK   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   s4   t ddddddgddddddgddddddgdœƒS )	Nr†   r   r‡   rˆ   r‰   r   rŠ   r‹   ©r   r!   r!   r!   r"   Úeducation_dfà   s    ýÿr“   c              	   C   s4   | j ddd�}tjtdd�� | ¡  W 5 Q R X d S )Nr   r   ©Úaxisr•   ©Úmatch)r   ÚpytestÚraisesÚNotImplementedErrorr   ©r“   Úgpr!   r!   r"   Ú	test_axisë   s    r�   c              	   C   s6   |   d¡}tjtdd�� |jdgd� W 5 Q R X d S )Nr   Úsubsetr–   ©rž   )r   r˜   r™   Ú
ValueErrorr   r›   r!   r!   r"   Útest_bad_subsetñ   s    
r¡   c                 C   s\   |   d¡ddg jdd�}tdddddgtjdd	d
ddgdddgd�dd�}t ||¡ d S )Nr   r   rŒ   T©rP   ç      à?ç      Ð?©rŠ   r†   r‡   ©rŠ   r   r‰   ©rŠ   r†   rˆ   ©r   r   r‰   ©r   r†   r‡   rJ   rF   rƒ   )r   r   r	   r   Úfrom_tuplesr   r   )r“   r   r    r!   r!   r"   Ú
test_basic÷   s"    ÿûø
ôr«   c                 C   s   | | j |||d�S )N©rP   rG   rH   )r   )r   rW   rP   rG   rH   r!   r!   r"   Ú_frame_value_counts  s    r­   r   Úcolumnr„   Úfunctionzsort, ascending)FN)TTÚas_indexr=   c                    s  dˆ d j ‡ fdd„dœ| }ˆ j||d�}	|	ddg j|||d�}
|�r|	 tddg|||¡}|rrt |
|¡ n�|rzd	nd
}| ¡ jd|idd�}|dkrÆ|jddidd�}t	 
|d dd¡|d< n0|dkrà|d dk|d< nt	 
|d dd¡|d< t |
|¡ �nˆ 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 |
|¡ nV| dd|d j d¡j d¡¡ | dd|d j d¡j d¡¡ |d= t |
|¡ d S )Nr   c                    s   ˆ d |  dkS )Nr   r   r!   )Úx©r“   r!   r"   Ú<lambda>+  ó    z6test_against_frame_and_seriesgroupby.<locals>.<lambda>)r®   r„   r¯   )Úbyr°   r   rŒ   r¬   rF   r   r   r   r”   r®   Úlevel_0r   rŠ   r¯   rC   ZbothF©r   rB   )Úvaluesr   r   rT   r­   r   r   Úreset_indexrU   r1   ÚwhereÚassert_frame_equalr   r   Zto_frameÚstrÚsplitÚgetr   r   Úinsert)r“   r   rP   r   rG   rH   r°   r=   rµ   rœ   r   r    Zindex_framer!   r²   r"   Ú$test_against_frame_and_seriesgroupby  sd    
ýü  ÿ    ÿ  ÿ""rÀ   rP   zCsort, ascending, expected_rows, expected_count, expected_group_sizer+   é   c           
         s†   ˆj ddgddd�}|d j|||d�}tƒ }	dD ]‰ ‡ ‡fdd	„|D ƒ|	ˆ < q2|rn||	d
< |	d
  |  < n||	d< t ||	¡ d S )Nr   r   F)r°   rG   rŒ   r¬   )r   r   rŒ   c                    s   g | ]}ˆˆ  | ‘qS r!   r!   ©Ú.0Úrow©r®   r“   r!   r"   Ú
<listcomp>t  s     z!test_compound.<locals>.<listcomp>rF   r   )r   r   r   r   r»   )
r“   rP   rG   rH   Úexpected_rowsZexpected_countZexpected_group_sizerœ   r   r    r!   rÅ   r"   Útest_compound[  s      ÿrÈ   c                   C   s4   t ddddgddddgddddgdœddd	d
gd�S )Nr   rB   rÁ   é   r   )rs   Únum_legsÚ	num_wingsZ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   )rB   rÁ   rÉ   )rB   r   r   )rB   rÉ   rÁ   )rÁ   rB   rÉ   )r   rB   r   rF   r£   r¤   c           
      C   s`   | j |||d�}t|tj|dddgd�|d�}t ||¡ |  d¡j |||d�}	t |	|¡ d S )N)rG   rH   rP   rs   rÊ   rË   rJ   rƒ   )r   r	   r   rN   r   r   r   )
rÏ   rG   rH   rP   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+   rB   r@   r/   r-   )rw   rx   ry   ÚD)r1   r7   r   )r:   r!   r!   r"   Únulls_df­  s    üÿrÖ   z:group_dropna, count_dropna, expected_rows, expected_valuesr-   rÉ   r/   g      ð?c           
         st   ˆj ddg|d�}|jdd|d�}tƒ }ˆjD ]‰ ‡ ‡fdd„|D ƒ|ˆ < q.t |¡}t||dd	�}	t ||	¡ d S )
Nrw   rx   )rI   T)rP   rG   rI   c                    s   g | ]}ˆˆ  | ‘qS r!   r!   rÂ   ©r®   rÖ   r!   r"   rÆ   Ï  s     z,test_dropna_combinations.<locals>.<listcomp>rF   rƒ   )	r   r   r   r   r   r   r	   r   r   )
rÖ   Zgroup_dropnaZcount_dropnarÇ   Úexpected_valuesrœ   r   r   r   r    r!   r×   r"   Útest_dropna_combinationsº  s    

rÙ   c                 C   s(   t ddddgddddgd| | dgdœƒS )Nr   ÚJohnÚAnneÚBethÚSmithÚLouise)rs   Ú
first_nameÚmiddle_namer’   )Znulls_fixturer!   r!   r"   Únames_with_nulls_dfÕ  s    


ýÿrá   z%dropna, expected_data, expected_index©r   r   )rÜ   rÚ   )rÞ   rÝ   rs   rß   rà   rJ   rÛ   rÜ   rÚ   rÞ   rÝ   r�   c           	      C   s`   | j ||d�}t|||d�}|r0|tt|ƒƒ }t ||¡ |  d¡j ||d�}t ||¡ d S )N)rI   rP   rƒ   rs   )r   r	   r)   r{   r   r   r   )	rá   rI   rP   r   rÐ   rÑ   rÒ   r    rÓ   r!   r!   r"   Ú#test_data_frame_value_counts_dropnaà  s    !ý
 ÿrã   Úobservedznormalize, name, expected_data©rz   ç        c                 C   s¾   |   d¡jd||d�}|j|d�}tjddddd	d
ddddddgdddgd�}t|||d�}	tdƒD ]"}
|	jjt	|	jj
|
 ƒ|
d�|	_qd|ršt ||	¡ n |	j|r¦dndd�}t ||¡ d S )Nr   r   ©r°   rä   r¢   r¥   r¦   r§   ©rŠ   r   r‡   ©rŠ   r   rˆ   ©rŠ   r†   r‰   r¨   r©   ©r   r   r‡   ©r   r   rˆ   ©r   r†   r‰   ©r   r†   rˆ   r   rŒ   rJ   rƒ   r+   ©ÚlevelrF   r   ©r   )r   r   r   r   rª   r	   rM   r   Ú
set_levelsr   rŽ   r   r   r¹   r»   ©r“   r°   rä   rP   r   rÐ   rœ   r   rÑ   Úexpected_seriesÚir    r!   r!   r"   Ú=test_categorical_single_grouper_with_only_observed_categories  sL    
  ÿôñý ÿ

ÿrö   c                 C   sÖ   |   ¡  d¡} | d j dg¡| d< | jd||d�}|j|d�}t|tj|dddgd�|d	�}	t	d
ƒD ]@}
t
|	jj|
 ƒ}|
dkr”| | d jj¡}|	jj||
d�|	_qf|rºt ||	¡ n|	j|d�}t ||¡ d S )Nr   r   ÚASIArç   r¢   r   rŒ   rJ   rƒ   r+   r   rï   rñ   )Úcopyr   rÍ   Zadd_categoriesr   r   r	   r   rª   rM   r   r   rŽ   Zset_categoriesr‚   rò   r   r   r¹   r»   )r“   r°   rä   rÑ   rP   r   rÐ   rœ   r   rô   rõ   Zindex_levelr    r!   r!   r"   Ú!assert_categorical_single_grouperT  s.    þú
ÿrù   c                 C   s6   ddddddddd	d
ddg}t | |d||||d� d S )Nr¥   r¦   r§   rè   ré   rê   r¨   r©   rë   rì   rí   rî   T©r“   r°   rä   rÑ   rP   r   rÐ   ©rù   ©r“   r°   rP   r   rÐ   rÑ   r!   r!   r"   Ú-test_categorical_single_grouper_observed_truew  s,    ôùrý   c                 C   sB   ddddddddd	d
ddddddddg}t | |d||||d� d S )Nr¥   r¦   r§   rè   rê   ré   r¨   r©   rî   rí   rì   rë   )r÷   r†   r‡   )r÷   r†   r‰   )r÷   r   rˆ   )r÷   r   r‡   )r÷   r   r‰   )r÷   r†   rˆ   Frú   rû   rü   r!   r!   r"   Ú.test_categorical_single_grouper_observed_false¦  s8    -îù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†   c                 C   sÜ   |   ¡ } | d  d¡| d< | d  d¡| d< | jddg||d�}|j|d�}t|r^||dk n|tj|dddgd�|d	�}	td
ƒD ]"}
|	jj	t
|	jj|
 ƒ|
d�|	_q‚|r¸t ||	¡ n |	j|rÄdndd�}t ||¡ d S )Nr   r   rŒ   rç   r¢   ræ   r   rJ   rƒ   rB   rï   rF   r   rñ   ©rø   r   r   r   r	   r   rª   rM   r   rò   r   rŽ   r   r   r¹   r»   )r“   r°   rä   rÑ   rP   r   rÐ   rœ   r   rô   rõ   r    r!   r!   r"   Ú"test_categorical_multiple_groupersò  s8    7  ÿþú ÿ

ÿr   c                 C   sæ   |   ¡ } | d  d¡| d< | d  d¡| d< | jd||d�}|j|d�}ddd	d
ddddddddg}t|tj|dddgd�|d�}	tddƒD ]"}
|	jj	t
|	jj|
 ƒ|
d�|	_qŒ|rÂt ||	¡ n |	j|rÎdndd�}t ||¡ d S )Nr   r   rŒ   r   rç   r¢   r¥   r¦   r§   rè   ré   rê   r¨   r©   rë   rì   rí   rî   rJ   rƒ   r   r+   rï   rF   r   rñ   rÿ   ró   r!   r!   r"   Útest_categorical_non_groupersH  sJ    ôþú ÿ

ÿr  z*normalize, expected_label, expected_valuesc                 C   s–   t dddgdddgdœƒ}|jdddgddd	„ gd
d�}|jd| d�}t dtjdddgtjd�ddddgddddgddddg||iƒ}t ||¡ d S )Nr   rB   r+   )rw   rx   rÁ   r@   rw   c                 S   s   | dkrdS dS )Nr   r-   r/   r!   )rõ   r!   r!   r"   r³   ”  r´   z&test_mixed_groupings.<locals>.<lambda>F©r°   T)rG   rP   r¶   rå   Zlevel_2r/   r-   rx   )r   r   r   r1   r„   Úint_r   r»   )rP   Úexpected_labelrØ   r   rœ   r   r    r!   r!   r"   Útest_mixed_groupingsŠ  s"    	     ûÿ	r  ztest, columns, expected_namesÚrepeatZabbder€   Údr�   Úerð   r%   Úlevel_1Úcc           
      C   sÆ   t dddddgdddd	d
g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	 
||¡ n@dd„ |D ƒ}t|ƒ}	d|	d< |	 d¡ t ||	d�}t	 ||¡ d S )Nr   r+   r@   r-   r0   rB   rÁ   rÉ   r/   r$   r   )r   r   r-   r+   r@   r0   )rB   r   r/   rÁ   rÉ   r$   r€   r   rå   r  r  râ   rJ   r   rƒ   c                 S   s   g | ]}t |ƒd g ‘qS )r   )r5   rÂ   r!   r!   r"   rÆ   ¼  s     z0test_column_label_duplicates.<locals>.<listcomp>r	  )r   r1   r„   Úint64r   r   r	   r   rª   r   r   r5   Úappendr»   )
Útestr   Zexpected_namesr°   r   rÐ   rW   r   r    Zexpected_columnsr!   r!   r"   Útest_column_label_duplicates¢  s(    $þú
r  znormalize, expected_labelc              	   C   sZ   t dddggdd|gd�jddd�}d	|› d
�}tjt|d�� |j| d� W 5 Q R X d S )Nr   rB   r+   r€   r�   r   Fr  zColumn label 'z' is duplicate of result columnr–   r¢   )r   r   r˜   r™   r    r   )rP   r  r�   Úmsgr!   r!   r"   Útest_result_label_duplicatesÄ  s    	 ÿr  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å   rB   rJ   r   r   )r   r   r1   r„   r  r   r	   r   rª   r   r   )r   r�   r   r    r!   r!   r"   Útest_ambiguous_groupingÕ  s      ÿr  c               	   C   sZ   t dddgdddgdœdddgd	�} d
}tjt|d�� |  d¡jdgd� W 5 Q R X d S )Nr€   r�   r
  r±   Úy©Úc1Úc2r   r   r·   z;Keys {'c1'} in subset cannot be in the groupby column keys.r–   r  rŸ   ©r   r˜   r™   r    r   r   ©r   r  r!   r!   r"   Ú"test_subset_overlaps_gb_key_raisesà  s    $r  c               	   C   sZ   t dddgdddgdœdddgd	�} d
}tjt|d�� |  d¡jdgd� W 5 Q R X d S )Nr€   r�   r
  r±   r  r  r   r   r·   z4Keys {'c3'} in subset do not exist in the DataFrame.r–   r  Úc3rŸ   r  r  r!   r!   r"   Ú!test_subset_doesnt_exist_in_frameè  s    $r  c                  C   sv   t dddgdddgdœdddg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 )Nr€   r�   r
  r±   r  r  r   r   r·   rï   r  rŸ   rB   rJ   r   r   ©r   r   r   r	   r   rN   r   r   ©r   r   r    r!   r!   r"   Útest_subsetð  s    $ýr  c                  C   sŒ   t dddgdddgdddggdddgdddgd	�} | jdd
�jdgd�}tddgtjddgddgddggd ddgd�dd�}t ||¡ d S )Nr€   r±   r�   r  r   r   r  r  )r   r   rï   rŸ   rB   rJ   r   r   r  r  r!   r!   r"   Útest_subset_duplicate_columnsü  s    ý ÿûr  c              
   C   sä   t dddddddgddd	d	d
d
dgdœƒ dg¡}t|d | dd�|d< | tddd�¡}| ¡ }tddddg| d�}|d  ¡ }t||dd	d
dggddddddgtdƒddddddggdddgd�}t	d|dd �}t
 ||¡ d S )!Nr^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   r+   rj   rl   rm   ro   rp   rq   z
2019-08-06z
2019-08-07z
2019-08-09z
2019-08-10)r]   r   r   rB   rÉ   rk   r�   r   r   )r   rt   r   r   r   r   Úuniquer   rM   r	   r   r   )r]   r   r�   r   ÚdatesZ
timestampsr   r    r!   r!   r"   Útest_value_counts_time_grouper  s:    ù	öÿó
 ÿ$ýr!  )MÚ__doc__Ú	itertoolsr   Únumpyr1   r˜   Zpandasr   r   r   r   r   r   r	   r
   r   Zpandas._testingZ_testingr   r#   r>   ZbinnedrD   r9   r:   r;   r   ZarangeÚmaxrQ   rW   Úkr�   r  ÚmarkZslowZparametrizer\   rv   r}   r   r…   r‘   Zfixturer“   r�   r¡   r«   r­   rÀ   rÈ   rÏ   rÔ   rÖ   rÙ   rá   rN   r7   rã   r„   r  rö   rù   rý   rþ   r   r  r  r5   r  r  r  r  r  r  r  r!  r!   r!   r!   r"   Ú<module>   s  ,$ 




ýþ>***ýþ
úüþ

ü""÷þ


þý	
ý ùý÷þ&ý ýúþ0#&ý ýúþ& ÿýîÿýøþ&%ôþûþîþ &ý üúþ%&ý üúþ0þþ
þþþþ

