
    o[we                        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dg          ej                            dddg          ej                            dddg          ej                            d	ddg          ej                            d
dgddgg          d                                                                         Zd Zd Zd Zd Zej                            dg d ed          e ed          gd edg ej        dgd          d          fg d ej        ddd          e ej        ddd          gd edg ej        dgd          d          fg d ej        ddd          e ej        ddd          e ej        ddd          gd eddg ej        ddgd          d          fg d ej        ddd          e ej        ddd          e ej        ddd          gd eddg ej        ddgd          d          fg          d              Zd! Zd" Zd# ZdS )$    N)ascii_lowercase)	DataFrame
MultiIndexNaTSeries	Timestamp
date_rangesortFTdropnaas_indexwith_nankeysjoejimc           	      >   d}d}t          dd          }t          t          j                            d                              t          t                    |          t          j                            d                              ||          t          j                            d                              d||          d          }|rg|	                    dt          i          }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                             |          }|                    |||           }
|
d                             t           j        |          }|s|                    d          }|rt%          j        ||d           nt%          j        ||d           t%          j        ||	           d S )Nd   
   z
2015-08-23)periods   r   )r   r   julier         r      %   r            	   )r   r
   r   T)dropF)check_names)r	   r   nprandomdefault_rngchoicelistr   integersastypefloatloccopygroupbynuniqueapplyr   reset_indextmassert_series_equalassert_frame_equal)r
   r   r   r   r   nmdaysdforiginal_dfgrleftrights                Alib/python3.11/site-packages/pandas/tests/groupby/test_nunique.pytest_series_groupby_nuniquer<      s    	A
AlB///D	9((++2243H3H!LL9((++224;;Y**1--66q!Q??	
 	

 
B  &YY'((#qu"ue|#qu"ue|!%qu"ug~!%qu"ug~!%qu"ug~''))K	D8$	7	7Bg;f--D	D8$	7	7BwKfnV<<E -!!t!,, >
tU>>>>>
dEu===="k*****    c                     t          t          d          t          d          t          d          d          } t          t          d          g dg dd          }|                     dd	
                                          }t	          j        ||           t          d          |_        d|j        _        |                    d          }|                     d                                          }t	          j        ||           | 	                    dd i                              d                              d	          }t	          j        ||           t          dgdz  dgdz  dt          d                    }d|j        _        | 	                    dd i                              d                                          }t	          j        ||           d S )Nabbaccabxaccabbacx)ABCabc)r   r   r   )r   r   r   rB   F)r   columnsxr   r   r   )rC   rD   )index)
r   r&   r,   r-   r0   r2   rI   namer    replace)r6   expectedresults      r;   test_nuniquerN   ;   s   	hd8nn4>>RR	S	SBtE{{KKLLHZZeZ,,4466F&(+++ %[[HNHN}}S}))HZZ__$$&&F&(+++ ZZd$$,,S11999GGF&(+++ sQwaS1W55T%[[IIIHHNZZd$$,,S1199;;F&(+++++r=   c                  >   t          g dg dg dg dg dgg d          } |                     dd	g          d
                                         }t          j        | j        | j        g          }t          dgdz  d
|          }t          j	        ||           d S )N)r   r   Alice)   r   Bob)i,  r   Charlie)ip   Dan)i     Edith)amountidrJ   rF   rY   rX   rJ   r   rV   )rJ   rI   )
r   r,   r-   r   from_arraysrY   rX   r   r0   r1   )datarM   rI   rL   s       r;   test_nunique_with_objectr\   T   s    OO	
 )((	 	 	D \\4*++F3;;==F"DGT[#9::EqcAgF%888H68,,,,,r=   c                      t          dt                    } |                     d                                          }t          dd          }t	          j        ||           d S )NrJ   )rJ   dtyper   )levelint64)r   objectr,   r-   r0   r1   )r[   rM   rL   s      r;   test_nunique_with_empty_seriesrb   g   s^    vV,,,D\\\""**,,F6111H68,,,,,r=   c                     t          t          d          t          d          t          d          gg dd                              d          } |                     t	          j        d                    d	                                         }|                     t	          j        d                    d	                             t          j                  }t          j
        ||           d S )
Nz2016-06-28 09:35:35z2016-06-28 16:09:30z2016-06-28 16:46:28)123)timer[   rg   h)freqr[   )r   r   	set_indexr,   pdGrouperr-   r.   r   r0   r1   testrM   rL   s      r;   test_nunique_with_timegrouperro   o   s     /00/00/00
 $OO	
 	
	 	 i 	 \\"*#...//7??AAF||BJC00011&9??OOH68,,,,,r=   zkey, data, dropna, expected)rH   rH   rH   z
2019-01-01r   rH   keyrJ   r[   )rI   rJ   i  )rH   rH   rH   yrr   r   rr   )rH   rH   rH   rH   rr   c                     t          | |d          }|                    dg          d                             |          }t          j        ||           d S )N)rp   r[   rp   r[   r   )r   r,   r-   r0   r1   )rp   r[   r   rL   r6   rM   s         r;   test_nunique_with_NaTrt      s[    > 
3--	.	.BZZ  (000??F68,,,,,r=   c                  (   t          g dt          j        dgd                    } |                     g d                                          }t          dgt          j        dg          | j        	          }t          j	        ||           d S )
N)r   r   r   rB   level_0rq   rF   )r   r   r   r   r   )rI   rG   )
r   rk   Indexr,   r-   r"   arrayrG   r0   r2   rm   s      r;   )test_nunique_preserves_column_level_namesry      s    YYY#Y(G(G(GHHHD\\)))$$,,..F!BHaSMM4<HHHH&(+++++r=   c                      t          t          dd          dg          } |                     g d          d                             d          }t	          g dd          }t          j        ||           d S )	Nz
2008-12-31z
2009-01-02daterF   )r   r   r   r-   )r   r   r   rq   )r   r	   r,   	transformr   r0   r1   )r6   rM   rL   s      r;   $test_nunique_transform_with_datetimer}      sw    	:lL99F8	L	L	LBZZ			""6*44Y??Fiiif---H68,,,,,r=   c                 @   t          dg                              d          }|d d         }|                    ||           }|                                }| rt          g |d d         d          }nt          dg|d          }t	          j        ||           d S )Nr   categoryr   )observedr`   )rI   r^   )r   r(   r,   r-   r0   r1   )r   catsergbrM   rL   s         r;   test_empty_categoricalr      s    
!++

Z
(
(C
bqb'C	S8	,	,BZZ\\F 9"CG7;;;1#S88868,,,,,r=   ) datetimedtstringr   numpyr"   pytestpandasrk   r   r   r   r   r   r	   pandas._testing_testingr0   markslowparametrizer<   rN   r\   rb   ro   rw   r{   rt   ry   r}   r    r=   r;   <module>r      s       " " " " " "                               %//E4=11dE]33dE]335'E5>!:;;+ + <; 43 43 21 0/ +D, , ,2- - -&- - -- - -" ! OOY|$$c99\+B+BCFA3hbhu5999GGG		
 OORWT1a  #wrwtQ':':;FA3hbhu5999GGG		
 &%%RWT1a  #wrwtQ':':CqRSATATUFAq63*5!A!A!AOOO		
 &%%RWT1a  #wrwtQ':':CqRSATATUFAq63*5!A!A!AOOO		
' :- -; :-, , ,- - -
- 
- 
- 
- 
-r=   