o
    õ­d(  ã                   @   sP  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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› ¡ qoqGq@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-d0d1„ ƒZ.d2d3„ Z/d4d5„ Z0d6d7„ Z1d8d9„ Z2ej$ &d:g 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@dA„ ƒƒƒƒƒZ3ej$ &dBddg¡ej$ &dCddg dD¢g dE¢g dF¢fddg dG¢g dH¢g dI¢fddg dJ¢g dK¢g dI¢fg¡dLdM„ ƒƒZ4ej-dNdO„ ƒZ5e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[„ ƒZ6ej-d\d]„ ƒZ7e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„ ƒZ8ej-didj„ ƒZ9ej$ &dkdddgej:g dl¢g dm¢dnfdg do¢eedgƒeg dp¢ƒedqdrej;gƒgg ds¢g dt¢g du¢gg dm¢dvfg¡ej$ &dddg¡dwdx„ ƒƒZ<ej$ &d>ddg¡ej$ &dyddg¡ej$ &dzddQej=g d{¢ej>d|fddXe =g d}¢¡fg¡d~d„ ƒƒƒZ?d€d„ Z@ej$ &d>ddg¡ej$ &dzddQej=g d{¢ej>d|fddXe =g d}¢¡fg¡d‚dƒ„ ƒƒZAej$ &d>ddg¡ej$ &dzddQej=g d„¢ej>d|fddXe =g d…¢¡fg¡d†d‡„ ƒƒZBej$ &d>ddg¡ej$ &dˆdg d‰¢fdg dŠ¢fg¡ej$ &dzddQej=g d‹¢ej>d|fddXe =g dŒ¢¡fg¡ddŽ„ ƒƒƒZCej$ &d>ddg¡ej$ &dyddg¡ej$ &dzddQej=g d{¢ej>d|fddXe =g d}¢¡fg¡dd„ ƒƒƒZDej$ &d‘ddQg d’¢fddXg df¢fg¡d“d”„ ƒZEej$ &d•d–eFd—ƒg d˜¢fd™eFdšƒd›g g dœ¢fg¡ej$ &d>ddg¡ddž„ ƒƒZGej$ &dŸddg¡d d¡„ ƒZHd¢d£„ ZId¤d¥„ ZJd¦d§„ ZKd¨d©„ ZLdªd«„ ZMej$ &d!ddg¡d¬d­„ ƒZNd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_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$   úk/var/www/html/visualizacion-main/env/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_df0   s    ýÿrB   ©TF)éd   iè  )é   é   rE   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)	r9   Úmapr   Úget_level_valuesÚrangeÚnlevelsr   Úfrom_arraysrP   )r   Úarrr$   r$   r%   Úrebuild_index_   s   z7test_series_groupby_value_counts.<locals>.rebuild_index)Ú	normalizerL   rM   rN   Úbins©rL   r,   éÿÿÿÿr$   )r   r   Úapplyr	   r   rP   ÚrenamerQ   r   r   Ú
sort_index)r   ÚkeysrY   r>   r?   rJ   rX   r   rL   rM   rN   rW   ÚkwargsÚgrÚleftÚrightr$   r$   r%   Ú test_series_groupby_value_countsU   s   
û
rd   Ú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]©Úapplerh   Úbananari   Úorangerj   Úpear©Ú	TimestampÚFoodr/   rm   Ús©re   ÚunitÚDatetimeÚ1D©ÚfreqÚkeyrn   r   )r   Údropr   r   r   r   r^   r\   r	   r   rP   r]   r   r   )re   r   Údfgr    r#   r$   r$   r%   Ú-test_series_groupby_value_counts_with_grouperz   s   	öÿó
ry   r   ÚAÚB)rz   r{   Ú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   rO   )r   r   r   r	   r}   r   rU   Úlenr   r   r   ©r   r   rx   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   rS   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   rU   r5   Úarrayr   r   r   )ro   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   rG   r   rG   ©r   r   r“   ©ÚlevelsÚcodesrP   ©r   r   r   rG   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   sx   t tjƒt dƒkr|j 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©rX   )ç      à?ç      Ð?r²   r±   r±   )©r‘   r‹   r   ©r‘   r   r   ©r‘   r‹   rŽ   ©r   r   r   ©r   r‹   r   r”   rO   rK   r‡   )r   r5   Ú__version__ÚnodeÚ
add_markerr¡   Ú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©rX   rL   rM   )r   )r   r_   rX   rL   rM   r$   r$   r%   Ú_frame_value_counts  s   rÁ   r   ©Úcolumnrˆ   Úfunctionzsort, ascending))FN)TTrC   Úas_indexrA   c	                    sF  t tjƒt dƒkr|r|r|r|j tjjddd¡ dˆ d j‡ fdd„dœ| }	ˆ j	|	|d	}
|
d
dg j
|||d}|rž|
 td
dg|||¡}|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>@  ó    z6test_against_frame_and_seriesgroupby.<locals>.<lambda>rÂ   )ÚbyrÅ   r   r“   rÀ   rK   r   r   r   r   rÃ   Úlevel_0r   r‘   rÄ   rH   Úboth©r   rG   )r   r5   r¸   r¹   rº   r¡   r»   r¼   Úvaluesr   r   r\   rÁ   r   r   Úreset_indexr]   ÚwhereÚassert_frame_equalr   r   Úto_frameÚstrÚsplitÚgetr   r   Úinsert)rœ   r   rX   r   rL   rM   rÅ   rA   r¾   rÊ   r¥   r    r#   Úindex_framer$   rÇ   r%   Ú$test_against_frame_and_seriesgroupby  sb   ûÿ

ýüÿÿÿ""rØ   rX   zCsort, ascending, expected_rows, expected_count, expected_group_size)r   r   rG   r/   é   r˜   )r   r/   r   r/   r   )rÙ   r/   r   rG   r   )r   rG   r   r   r   )r   r/   r/   r   r   )rÙ   r   r/   rG   r   )r   r   rG   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Å   rL   r“   rÀ   r”   c                    ó   g | ]}ˆˆ  | ‘qS r$   r$   ©Ú.0Úrow©rÃ   rœ   r$   r%   Ú
<listcomp>‰  ó    z!test_compound.<locals>.<listcomp>rK   r   )r   r   r   r   rÑ   )
rœ   rX   rL   rM   Úexpected_rowsÚexpected_countÚexpected_group_sizer¥   r    r#   r$   rÞ   r%   Útest_compoundp  s   ÿrä   c                   C   s$   t g d¢g d¢g d¢dœg d¢dS )N©r   r   r   r   )rG   rÙ   rÙ   é   )rG   r   r   r   ©rv   Ú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   rG   r   )©r   r   r   )rG   rÙ   ræ   ©rG   r   r   ©r   r   rG   )rð   )rG   ræ   rÙ   rñ   )rG   r   r   )rð   )rÙ   rG   ræ   )r   rG   r   rK   )r±   r²   r²   c           
      C   s^   | j |||d}t|tj|g d¢d|d}t ||¡ |  d¡j |||d}	t |	|¡ d S )N)rL   rM   rX   rç   rO   r‡   rv   )r   r	   r   rU   r   r   r   )
rî   rL   rM   rX   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/   rG   rE   r3   r1   )rz   r{   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/   rE   r1   ræ   r3   rG   rÙ   )	r±   r±   ç      ð?r²   r²   r²   r²   rú   rú   )r   r   r/   rE   rG   rÙ   )r±   r±   rú   rú   rú   rú   )r   r   rE   r1   ræ   r3   )r±   r±   r²   r²   r²   r²   )r   r   rE   )r±   r±   rú   c                    s¢   t tjƒt dƒkr|s|j 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­   rz   r{   )rN   T)rX   rL   rN   c                    rÚ   r$   r$   rÛ   ©rÃ   rù   r$   r%   rß   î  rà   z,test_dropna_combinations.<locals>.<listcomp>rK   r‡   )r   r5   r¸   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©rv   Ú
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  rO   rå   )r  r  r   r  r  )r   r   r   r   )r   r   rG   rG   )rG   r   r   rG   r•   c           	      C   s`   | j ||d}t|||d}|r|tt|ƒƒ }t ||¡ |  d¡j ||d}t ||¡ d S )N)rN   rX   r‡   rv   )r   r	   r-   r~   r   r   r   )	r	  rN   rX   r   ró   rô   rõ   r#   rö   r$   r$   r%   Ú#test_data_frame_value_counts_dropnaÿ  s   !ý
ÿr  Úobservedznormalize, name, expected_data)rG   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|j 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<|rXt ||
¡ 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”   rO   r‡   r/   ©ÚlevelrK   r   ©r   )r   r5   r¸   r¹   rº   r¡   r»   r¼   r   r   r   r   r½   r	   rS   r   Ú
set_levelsr   r–   r   r   rÏ   rÑ   ©rœ   rÅ   r  rX   r   ró   r¾   r¥   r    rô   Úexpected_seriesÚir#   r$   r$   r%   Ú=test_categorical_single_grouper_with_only_observed_categories2  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”   rO   r‡   r/   r   r  r  )Úcopyr   rì   Úadd_categoriesr   r   r	   r   r½   rS   r   r   r–   Úset_categoriesr…   r  r   r   rÏ   rÑ   )rœ   rÅ   r  rô   rX   r   ró   r¥   r    r  r  Úindex_levelr#   r$   r$   r%   Ú!assert_categorical_single_grouper}  s.   þú
ÿr%  c              	   C   sL   t tjƒt dƒkr|j tjjddd¡ g d¢}t| |d||||d d S )Nr«   r¬   Fr­   r  T©rœ   rÅ   r  rô   rX   r   ró   ©	r   r5   r¸   r¹   rº   r¡   r»   r¼   r%  ©rœ   rÅ   rX   r   ró   r¾   rô   r$   r$   r%   Ú-test_categorical_single_grouper_observed_true   s"   ûÿ

ùr)  )rG   r   r   r   r   r   r   r   r   r   r   r   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   sL   t tjƒt dƒkr|j 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&  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   rG   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   rO   r‡   rG   r  rK   r   r  )r!  r   r   r   r	   r   r½   rS   r   r  r   r–   r   r   rÏ   rÑ   )rœ   rÅ   r  rô   rX   r   ró   r¥   r    r  r  r#   r$   r$   r%   Ú"test_categorical_multiple_groupers1  s2   7
ÿþú
ÿ
ÿr0  c                 C   sü   t tjƒt dƒkr|j 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|
_qP|rlt ||
¡ d S |
j|rrdndd}t ||¡ d S )Nr«   r¬   Fr­   r   r   r“   r   r  r°   r  r”   rO   r‡   r   r/   r  rK   r   r  )r   r5   r¸   r¹   rº   r¡   r»   r¼   r!  r   r   r   r	   r   r½   rS   r   r  r   r–   r   r   rÏ   rÑ   r  r$   r$   r%   Útest_categorical_non_groupers‡  s>   ûÿ
þú
ÿ
ÿr1  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   rG   r/   )rz   r{   )rÙ   rE   rÙ   rz   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)rL   rX   rË   )rÙ   rÙ   rE   r  rò   Úlevel_2)r3   r3   r1   r{   )r   r/   rG   )r   r   r   r5   rˆ   Úint_r   rÑ   )rX   Úexpected_labelrþ   r   r¥   r    r#   r$   r$   r%   Útest_mixed_groupingsÕ  s   	ûÿ	r7  ztest, columns, expected_namesÚrepeatÚabbde)rƒ   NÚdr„   r„   Úer  r)   Úlevel_1)rƒ   Nr:  r„   Úcr<  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/   rE   r1   r4   )rG   rÙ   ræ   r3   r'   r   )r   r   r1   r/   rE   r4   )rG   r   r3   rÙ   ræ   r'   rƒ   r   r   r  r:  r3  r
  rO   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>r<  )r   r5   rˆ   Úint64r   r   r	   r   r½   r   r   r9   ÚappendrÑ   )
Útestr   Úexpected_namesrÅ   r   ró   r_   r    r#   Úexpected_columnsr$   r$   r%   Útest_column_label_duplicatesí  s(   þú
rC  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 )Nr2  rƒ   r„   r   Fr3  zColumn label 'z' is duplicate of result columnrŸ   r°   )r   r   r¡   r¢   r©   r   )rX   r6  r™   Úmsgr$   r$   r%   Útest_result_label_duplicates  s   	ÿ"ÿrE  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  rG   rO   r   r   )r   r   r5   rˆ   r>  r   r	   r   r½   r   r   )r   r™   r    r#   r$   r$   r%   Útest_ambiguous_grouping   s   ÿ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 )
N©rƒ   r„   r=  ©rÆ   ÚyrI  ©Úc1Úc2©r   r   r   rÍ   z;Keys {'c1'} in subset cannot be in the groupby column keys.rŸ   rK  r¨   ©r   r¡   r¢   r©   r   r   ©r   rD  r$   r$   r%   Ú"test_subset_overlaps_gb_key_raises+  ó
   "ÿ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 )NrG  rH  rJ  rM  rÍ   z4Keys {'c3'} in subset do not exist in the DataFrame.rŸ   rK  Úc3r¨   rN  rO  r$   r$   r%   Ú!test_subset_doesnt_exist_in_frame3  rQ  rS  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 )NrG  rH  rJ  rM  rÍ   r   r  rL  r¨   r   rG   rÆ   rI  rO   r   r   ©r   r   r   r	   r   rU   r   r   ©r   r    r#   r$   r$   r%   Útest_subset;  s   ýrV  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„   rI  rI  rM  )rK  rL  rL  )r   r   r   r  rL  r¨   r   rG   rÆ   rI  )NrL  rL  rO   r   r   rT  rU  r$   r$   r%   Útest_subset_duplicate_columnsG  s   ýÿûrW  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 )Nrf   rg   rl   r/   rm   ro   rp   rr   rs   rt   )z
2019-08-06z
2019-08-07z
2019-08-09z
2019-08-10)re   )rh   ri   rj   rk   )r   r   r   rG   rG   r/   ræ   )r   r   r   rG   rG   r/   )rr   rm   rn   r•   r   r   r   )r   rw   r   r   r   r   Úuniquer   rS   r	   r   r   )re   r   r™   r    ÚdatesÚ
timestampsr   r#   r$   r$   r%   Útest_value_counts_time_grouperY  s*   	öÿóÿýr[  )OÚ__doc__Ú	itertoolsr   Únumpyr5   r¡   Úpandasr   r   r   r   r   r   r	   r
   r   Úpandas._testingÚ_testingr   Úpandas.util.versionr   r&   rB   ÚbinnedrI   r=   r>   r?   r   ÚarangeÚmaxrY   r_   Úkr„   r?  r»   ÚslowÚparametrizerd   ry   r€   r‚   r‰   rš   Úfixturerœ   r¦   rª   r¿   rÁ   rØ   rä   rî   r÷   rù   rÿ   r	  rU   r;   r  rˆ   r>  r  r%  r)  r*  r0  r1  r7  r9   rC  rE  rF  rP  rS  rV  rW  r[  r$   r$   r$   r%   Ú<module>   sÖ   ,$þü	




 þHýþ
úüþ

ü÷þ


þý	
ýùý÷þýýúþ:#ýýúþ*
ÿýÿýøþ&0þþîþ ýüúþ%ýüúþ<þþ
þþþþ

