o
    d2                     @   s"  d dl Zd dlmZ d dlZd dlZd dlZd dlm	Z	m
Z
mZmZmZmZ d dlmZ ejjejddedd ejdg d	ejd
ddgejdddgdd Zdd Zdd Zdd Zdd Zejdg dedeedgdedgejdgdddd fg ded!ddeed!ddgdedgejdgdddd fg d"ed!ddeed!ddeed!ddgdeddgejdd#gdddd fg d$ed!ddeed!ddeed!ddgdeddgejdd#gdddd fgd%d& Zd'd( Zd)d* Zd+d, Z dS )-    N)ascii_lowercase)	DataFrame
MultiIndexNaTSeries	Timestamp
date_rangen
         m)r
   d   i  sortFTdropnac                    s  d fdd	}t ddd}ttjtt| tj|| tjd|| d}||d	g ||d	d
g d |jdd dd	f< d |jdd dd
f< d |jdd ddf< d |jdd ddf< d |jdd ddf< ||d	g ||d	d
g ||d	gdd ||d	d
gdd d S )NTc                    s   |   }| j||d}|d j d}| j||d}|d jtj d}|s.|jdd}|r9tj||dd ntj||dd t| | d S )N)as_indexr   julier   T)dropF)check_names)	copygroupbynuniqueapplyr   reset_indextmassert_series_equalassert_frame_equal)dfkeysr   original_dfgrleftrightr   r    f/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/groupby/test_nunique.pycheck_nunique   s   z2test_series_groupby_nunique.<locals>.check_nuniquez
2015-08-23r
   )periodsr   )jimjoer   r)   r*            %         r      	   Fr   )T)	r   r   nprandomchoicelistr   randintloc)r	   r   r   r   r'   daysframer%   r$   r&   test_series_groupby_nunique   s&   r<   c                  C   s  t tdtdtdd} t tdg dg dd}| jdd	d
 }t|| td|_d|j_|jdd}| d }t|| | 	dd idjd	d}t|| t dgd dgd dtdd}d|j_| 	dd id }t|| d S )Nabbaccabxaccabbacx)ABCabc)r+   r   r+   )r+   r+   r   r@   Fr3   columnsxr   r+   r-   )rA   rB   )index)
r   r7   r   r   r   r   rG   namer   replace)r   expectedresultr%   r%   r&   test_nuniqueB   s   
"rL   c                  C   sz   t g dg dg dg dg dgg dd} | dd	gd
  }t| j| jg}tdgd d
|d}t	|| d S )N)r   r+   Alice)   r   Bob)i,  r-   Charlie)ip   Dan)i     Edith)amountidrH   rD   rV   rU   rH   r+   rS   )rH   rG   )
r   r   r   r   from_arraysrV   rU   r   r   r   )datarK   rG   rJ   r%   r%   r&   test_nunique_with_object[   s   rY   c                  C   s8   t dtd} | jdd }t ddd}t|| d S )NrH   )rH   dtyper   )levelint64)r   objectr   r   r   r   )rX   rK   rJ   r%   r%   r&   test_nunique_with_empty_seriesn   s   r^   c                  C   sr   t tdtdtdgg ddd} | tjddd	  }| tjddd	 tj}t	
|| d S )
Nz2016-06-28 09:35:35z2016-06-28 16:09:30z2016-06-28 16:46:28)123)timerX   rb   h)freqrX   )r   r   	set_indexr   pdGrouperr   r   r   r   r   testrK   rJ   r%   r%   r&   test_nunique_with_timegrouperv   s   	
rj   zkey, data, dropna, expected)rF   rF   rF   z
2019-01-01r+   rF   keyrH   rX   )rG   rH   i  )rF   rF   rF   yrm   rm   )rF   rF   rF   rF   rm   c                 C   s6   t | |d}|dgd j|d}t|| d S )N)rk   rX   rk   rX   r   )r   r   r   r   r   )rk   rX   r   rJ   r   rK   r%   r%   r&   test_nunique_with_NaT   s   rn   c                  C   sX   t g dtjdgddd} | g d }t dgtdg| jd	}t	|| d S )
N)r+   r   r   r@   level_0rl   rD   )r   r   r   r   r   )rG   rE   )
r   rf   Indexr   r   r4   arrayrE   r   r   rh   r%   r%   r&   )test_nunique_preserves_column_level_names   s   rr   c                  C   sL   t tdddgd} | g dd d}tg ddd}t|| d S )	Nz
2008-12-31z
2009-01-02daterD   )r   r   r+   r   )r   r   r+   rl   )r   r   r   	transformr   r   r   )r   rK   rJ   r%   r%   r&   $test_nunique_transform_with_datetime   s   ru   c                 C   sn   t dgd}|d d }|j|| d}| }| r't g |d d dd}nt dg|dd}t|| d S )Nr+   categoryr   )observedr\   )rG   rZ   )r   astyper   r   r   r   )rw   catsergbrK   rJ   r%   r%   r&   test_empty_categorical   s   r|   )!datetimedtstringr   numpyr4   pytestpandasrf   r   r   r   r   r   r   pandas._testing_testingr   markslowparametrizearanger<   rL   rY   r^   rj   rp   rs   rn   rr   ru   r|   r%   r%   r%   r&   <module>   sZ     ***
