o
    ájh…  ã                   @   sD  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 ]LZed
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 ]\ZZ e !eee eef¡ e !e› de› de› ¡ qiqAq:e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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„ Z0e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@„ ƒƒƒƒƒZ1e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 dH¢fg¡dKdL„ ƒƒZ2ej+dMdN„ ƒZ3ej" $dOddddPg dQ¢g dR¢fddddPg dS¢g dT¢fddddPg dU¢g dV¢fddddWg dX¢g dV¢fg¡dYdZ„ ƒZ4ej+d[d\„ ƒZ5ej" $d]ddg d^¢g d_¢fddg d`¢g da¢fddg db¢g dc¢fddg dd¢g de¢fg¡dfdg„ ƒZ6ej+dhdi„ ƒZ7ej" $djdddgej8g dk¢g dl¢dmfdg dn¢eedgƒeg do¢ƒedpdqej9gƒgg dr¢g ds¢g dt¢gg dl¢dufg¡ej" $dddg¡dvdw„ ƒƒZ:ej" $d=ddg¡ej" $dxddg¡ej" $dyddPej;g dz¢ej<d{fddWe ;g d|¢¡fg¡d}d~„ ƒƒƒZ=dd€„ Z>ej" $d=ddg¡ej" $dyddPej;g dz¢ej<d{fddWe ;g d|¢¡fg¡dd‚„ ƒƒZ?ej" $d=ddg¡ej" $dyddPej;g dƒ¢ej<d{fddWe ;g 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" $dyddPej;g dŠ¢ej<d{fddWe ;g d‹¢¡fg¡dŒd„ ƒƒƒZAej" $d=ddg¡ej" $dxddg¡ej" $dyddPej;g dz¢ej<d{fddWe ;g d|¢¡fg¡dŽd„ ƒƒƒZBej" $dddPg d‘¢fddWg de¢fg¡d’d“„ ƒZCej" $d”d•eDd–ƒg d—¢fd˜eDd™ƒdšg g d›¢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ÚresultÚdf_mi_expectedÚmi_expectedÚexpected© r#   úg/var/www/html/smartRegister/venv/lib/python3.10/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œƒ}| rj|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é
   )Ú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    ýÿrA   ©TF)éd   iè  )é   é   rD   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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)	r8   Úmapr   Úget_level_valuesÚrangeÚnlevelsr   Úfrom_arraysrO   )r   Úarrr#   r#   r$   Úrebuild_index^   s   z7test_series_groupby_value_counts.<locals>.rebuild_index)Ú	normalizerK   rL   rM   Úbins©rK   r+   éÿÿÿÿr#   )r   r   Úapplyr	   r   rO   ÚrenamerP   r   r   Ú
sort_index)r   ÚkeysrX   r=   r>   rI   rW   r   rK   rL   rM   rV   ÚkwargsÚgrÚleftÚrightr#   r#   r$   Ú test_series_groupby_value_countsT   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   rO   r\   r   r   )rd   r   Údfgr   r"   r#   r#   r$   Ú-test_series_groupby_value_counts_with_groupery   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   rZ   r   )Údtyper   rN   )r   r   r   r	   r|   r   rT   Ú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   rZ   )r   rR   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   rT   r4   Ú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   FrY   r’   r   r   rŠ   r   )rŒ   r   rŽ   )r   r   r   r   r   )r   r   r   r   r   )r   r   rF   r   rF   ©r   r   r’   ©ÚlevelsÚcodesrO   ©r   r   r   rF   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   sJ   | j ddd}tjtdd | ¡  W d   ƒ d S 1 sw   Y  d S )Nr   r   ©Úaxisr   ©Úmatch)r   ÚpytestÚraisesÚNotImplementedErrorr   ©r›   Ú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$   Útest_bad_subsetñ   s   
"ÿr©   c                 C   sN   |   d¡ddg jdd}tg d¢tjg d¢g d¢d	d
d}t ||¡ d S )Nr   r   r’   T©rW   )ç      à?ç      Ð?r¬   r«   r«   )©r   rŠ   rŒ   ©r   r   rŽ   ©r   rŠ   r   ©r   r   rŽ   ©r   rŠ   rŒ   r“   rN   rJ   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©rW   rK   rL   )r   )r   r^   rW   rK   rL   r#   r#   r$   Ú_frame_value_counts  s   rµ   r   ©Úcolumnr‡   Úfunctionzsort, ascending))FN)TTrB   Úas_indexr@   c                    s  dˆ d j ‡ fdd„dœ| }ˆ j||d}	|	ddg j|||d}
|rƒ|	 tddg|||¡}|r9t |
|¡ d S |r=d	nd
}| ¡ jd|idd}|dkrc|jddidd}t	 
|d dd¡|d< n|dkrp|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   c                    s   ˆ d |  dkS )Nr   r   r#   )Úx©r›   r#   r$   Ú<lambda>+  ó    z6test_against_frame_and_seriesgroupby.<locals>.<lambda>r¶   )Úbyr¹   r   r’   r´   rJ   r   r   r   rœ   r·   Úlevel_0r   r   r¸   rG   ÚbothF©r   rF   )Úvaluesr   r   r[   rµ   r   r   Úreset_indexr\   r4   ÚwhereÚassert_frame_equalr   r   Úto_frameÚstrÚsplitÚgetr   r   Úinsert)r›   r   rW   r   rK   rL   r¹   r@   r¾   r¤   r   r"   Úindex_framer#   r»   r$   Ú$test_against_frame_and_seriesgroupby  sT   
ýüÿÿÿ""rÌ   rW   zCsort, ascending, expected_rows, expected_count, expected_group_size)r   r   rF   r.   é   r—   )r   r.   r   r.   r   )rÍ   r.   r   rF   r   )r   rF   r   r   r   )r   r.   r.   r   r   )rÍ   r   r.   rF   r   )r   r   rF   r   r   c           
         s†   ˆj ddgddd}|d j|||d}tƒ }	dD ]‰ ‡ ‡fdd	„|D ƒ|	ˆ < q|r7||	d
< |	d
  |  < n||	d< t ||	¡ d S )Nr   r   F)r¹   rK   r’   r´   r“   c                    ó   g | ]}ˆˆ  | ‘qS r#   r#   ©Ú.0Úrow©r·   r›   r#   r$   Ú
<listcomp>t  ó    z!test_compound.<locals>.<listcomp>rJ   r   )r   r   r   r   rÅ   )
r›   rW   rK   rL   Úexpected_rowsÚexpected_countÚexpected_group_sizer¤   r   r"   r#   rÒ   r$   Útest_compound[  s   ÿrØ   c                   C   s$   t g d¢g d¢g d¢dœg d¢dS )N©r   r   r   r   )rF   rÍ   rÍ   é   )rF   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   rF   r   )©r   r   r   )rF   rÍ   rÚ   ©rF   r   r   ©r   r   rF   )rä   )rF   rÚ   rÍ   rå   )rF   r   r   )rä   )rÍ   rF   rÚ   )r   rF   r   rJ   )r«   r¬   r¬   c           
      C   s^   | j |||d}t|tj|g d¢d|d}t ||¡ |  d¡j |||d}	t |	|¡ d S )N)rK   rL   rW   rÛ   rN   r†   ru   )r   r	   r   rT   r   r   r   )
râ   rK   rL   rW   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.   rF   rD   r2   r0   )ry   rz   r{   ÚD)r4   r:   r   )r=   r#   r#   r$   Únulls_df­  s   üÿrí   z:group_dropna, count_dropna, expected_rows, expected_values)	r   r   r.   rD   r0   rÚ   r2   rF   rÍ   )	r«   r«   ç      ð?r¬   r¬   r¬   r¬   rî   rî   )r   r   r.   rD   rF   rÍ   )r«   r«   rî   rî   rî   rî   )r   r   rD   r0   rÚ   r2   )r«   r«   r¬   r¬   r¬   r¬   )r   r   rD   )r«   r«   rî   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 )
Nry   rz   )rM   T)rW   rK   rM   c                    rÎ   r#   r#   rÏ   ©r·   rí   r#   r$   rÓ   Ï  rÔ   z,test_dropna_combinations.<locals>.<listcomp>rJ   r†   )	r   r   r   r   r   r   r	   r   r   )
rí   Úgroup_dropnaÚcount_dropnarÕ   Úexpected_valuesr¤   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_index)©r   r   )rö   rô   )rø   r÷   rù   rN   rÙ   )rõ   rö   rô   rø   r÷   )r   r   r   r   )r   r   rF   rF   )rF   r   r   rF   r”   c           	      C   s`   | j ||d}t|||d}|r|tt|ƒƒ }t ||¡ |  d¡j ||d}t ||¡ d S )N)rM   rW   r†   ru   )r   r	   r,   r}   r   r   r   )	rý   rM   rW   r   rç   rè   ré   r"   rê   r#   r#   r$   Ú#test_data_frame_value_counts_dropnaà  s   !ý
ÿrÿ   Úobservedznormalize, name, expected_data)rF   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¡jd||d}|j|d}tjg d¢g d¢d}t|||d}	td	ƒD ]}
|	jjt	|	jj
|
 ƒ|
d
|	_q'|rCt ||	¡ d S |	j|rId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“   rN   r†   r.   ©ÚlevelrJ   r   ©r   )r   r   r   r   r²   r	   rR   r   Ú
set_levelsr   r•   r   r   rÃ   rÅ   ©r›   r¹   r   rW   r   rç   r¤   r   rè   Úexpected_seriesÚir"   r#   r#   r$   Ú=test_categorical_single_grouper_with_only_observed_categories  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“   rN   r†   r.   r   r  r  )Úcopyr   rà   Úadd_categoriesr   r   r	   r   r²   rR   r   r   r•   Úset_categoriesr„   r  r   r   rÃ   rÅ   )r›   r¹   r   rè   rW   r   rç   r¤   r   r  r  Úindex_levelr"   r#   r#   r$   Ú!assert_categorical_single_grouperT  s.   þú
ÿr  c              	   C   ó"   g d¢}t | |d||||d d S )Nr  T©r›   r¹   r   rè   rW   r   rç   ©r  ©r›   r¹   rW   r   rç   rè   r#   r#   r$   Ú-test_categorical_single_grouper_observed_truew  s   
ùr  )rF   r   r   r   r   r   r   r   r   r   r   r   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   r  )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   Fr  r  r  r#   r#   r$   Ú.test_categorical_single_grouper_observed_false¦  s   ,
ù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   rF   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   rN   r†   rF   r  rJ   r   r  ©r  r   r   r   r	   r   r²   rR   r   r  r   r•   r   r   rÃ   rÅ   )r›   r¹   r   rè   rW   r   rç   r¤   r   r  r  r"   r#   r#   r$   Ú"test_categorical_multiple_groupersò  s2   7
ÿþú
ÿ
ÿr&  c                 C   sÒ   |   ¡ } | 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|	_q;|rWt ||	¡ d S |	j|r]dndd}t ||¡ d S )Nr   r   r’   r   r  rª   r  r“   rN   r†   r   r.   r  rJ   r   r  r%  r  r#   r#   r$   Útest_categorical_non_groupersH  s0   þú
ÿ
ÿ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jddg d¢dg d¢dg d¢||iƒ}t ||¡ d S )Nrã   ©r   rF   r.   )ry   rz   )rÍ   rD   rÍ   ry   c                 S   s   | dkrdS dS )Nr   r0   r2   r#   )r  r#   r#   r$   r¼   ”  r½   z&test_mixed_groupings.<locals>.<lambda>F©r¹   T)rK   rW   r¿   )rÍ   rÍ   rD   r  ræ   Úlevel_2)r2   r2   r0   rz   )r   r.   rF   )r   r   r   r4   r‡   Úint_r   rÅ   )rW   Úexpected_labelrò   r   r¤   r   r"   r#   r#   r$   Útest_mixed_groupingsŠ  s   	ûÿ	r-  ztest, columns, expected_namesÚrepeatÚabbde)r‚   NÚdrƒ   rƒ   Úer  r(   Úlevel_1)r‚   Nr0  rƒ   Úcr2  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.   rD   r0   r3   )rF   rÍ   rÚ   r2   r&   r   )r   r   r0   r.   rD   r3   )rF   r   r2   rÍ   rÚ   r&   r‚   r   r   r  r0  r)  rþ   rN   r   r†   c                 S   s   g | ]	}t |ƒd g ‘qS )r   )r8   rÏ   r#   r#   r$   rÓ   ¼  s    z0test_column_label_duplicates.<locals>.<listcomp>r2  )r   r4   r‡   Úint64r   r   r	   r   r²   r   r   r8   ÚappendrÅ   )
Útestr   Úexpected_namesr¹   r   rç   r^   r   r"   Úexpected_columnsr#   r#   r$   Útest_column_label_duplicates¢  s(   þú
r9  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   )rW   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  rF   rN   r   r   )r   r   r4   r‡   r4  r   r	   r   r²   r   r   )r   r˜   r   r"   r#   r#   r$   Útest_ambiguous_groupingÕ  s   ÿr<  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ƒ   r3  ©rº   Úyr?  ©Úc1Úc2©r   r   r   rÁ   z;Keys {'c1'} in subset cannot be in the groupby column keys.rž   rA  r§   ©r   r    r¡   r¨   r   r   ©r   r:  r#   r#   r$   Ú"test_subset_overlaps_gb_key_raisesà  ó
   "ÿrF  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 )Nr=  r>  r@  rC  rÁ   z4Keys {'c3'} in subset do not exist in the DataFrame.rž   rA  Úc3r§   rD  rE  r#   r#   r$   Ú!test_subset_doesnt_exist_in_frameè  rG  rI  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 )Nr=  r>  r@  rC  rÁ   r   r  rB  r§   r   rF   rº   r?  rN   r   r   ©r   r   r   r	   r   rT   r   r   ©r   r   r"   r#   r#   r$   Útest_subsetð  s   ýrL  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ƒ   r?  r?  rC  )rA  rB  rB  )r   r   r   r  rB  r§   r   rF   rº   r?  )NrB  rB  rN   r   r   rJ  rK  r#   r#   r$   Útest_subset_duplicate_columnsü  s   ýÿûrM  c                 C   s¶   t g d¢g d¢dœƒ dg¡}t|d | dd|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   rF   rF   r.   rÚ   )r   r   r   rF   rF   r.   )rq   rl   rm   r”   r   r   r   )r   rv   r   r   r   r   Úuniquer   rR   r	   r   r   )rd   r   r˜   r   ÚdatesÚ
timestampsr   r"   r#   r#   r$   Útest_value_counts_time_grouper  s*   	öÿóÿýrQ  )MÚ__doc__Ú	itertoolsr   Únumpyr4   r    Úpandasr   r   r   r   r   r   r	   r
   r   Úpandas._testingÚ_testingr   r%   rA   ÚbinnedrH   r<   r=   r>   r   ÚarangeÚmaxrX   r^   Úkrƒ   r5  ÚmarkÚslowÚparametrizerc   rx   r   r   rˆ   r™   Úfixturer›   r¥   r©   r³   rµ   rÌ   rØ   râ   rë   rí   ró   rý   rT   r:   rÿ   r‡   r4  r  r  r  r  r&  r'  r-  r8   r9  r;  r<  rF  rI  rL  rM  rQ  r#   r#   r#   r$   Ú<module>   sÔ   ,$þü	




þ>ýþ
úüþ

ü÷þ


þý	
ýùý÷þýýúþ0#ýýúþ
ÿýÿýøþ&%þþîþ ýüúþ%ýüúþ0þþ
þþþþ

