
    d2                        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j        dd          z            ej                            dg d	          ej                            d
ddg          ej                            ddd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n
         m)r   d   i  sortFTdropnac           	      z   dfd	}t          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	gd           d S )NTc                    |                                  }|                     ||          }|d                                       }|                     ||          }|d                             t          j                  }|s|                    d          }|rt          j        ||d           nt          j        ||d           t          j        | |           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rightr   r   s	          ]/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/groupby/test_nunique.pycheck_nuniquez2test_series_groupby_nunique.<locals>.check_nunique   s    ggiiZZxdZ;;'{""&"11ZZxdZ;;7!!&.!@@ 	1%%4%00E 	B"4EBBBBB!$5AAAA
b+.....    z
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frames     ``   r'   test_series_groupby_nuniquer>      s   / / / / / / /  lB///D9##D$9$91==9##D!,,Y&&q!Q//	
 	
 E M%%!!!M%%((("EIaeeUl"EIaeeUl $EIaeeWn $EIaeeWn $EIaeeWnM%%!!!M%%(((M%%51111M%%%888888r)   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   rC   Fr5   columnsxr   r-   r/   )rD   rE   )index)
r   r9   r   r   r   r    rJ   namer   replace)r!   expectedresults      r'   test_nuniquerO   B   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idrK   rG   rZ   rY   rK   r-   rW   )rK   rJ   )
r   r   r   r   from_arraysrZ   rY   r   r   r   )datarN   rJ   rM   s       r'   test_nunique_with_objectr]   [   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 )NrK   )rK   dtyper   )levelint64)r   objectr   r   r   r   )r\   rN   rM   s      r'   test_nunique_with_empty_seriesrc   n   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\   rh   h)freqr\   )r   r   	set_indexr   pdGrouperr   r   r   r   r   testrN   rM   s      r'   test_nunique_with_timegrouperrp   v   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)rI   rI   rI   z
2019-01-01r-   rI   keyrK   r\   )rJ   rK   i  )rI   rI   rI   yrs   rs   )rI   rI   rI   rI   rs   c                     t          | |d          }|                    dg          d                             |          }t          j        ||           d S )N)rq   r\   rq   r\   r   )r   r   r   r   r   )rq   r\   r   rM   r!   rN   s         r'   test_nunique_with_NaTru      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   rC   level_0rr   rG   )r   r   r   r   r   )rJ   rH   )
r   rl   Indexr   r   r6   arrayrH   r   r    rn   s      r'   )test_nunique_preserves_column_level_namesrz      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daterG   )r   r   r-   r   )r   r   r-   rr   )r   r	   r   	transformr   r   r   )r!   rN   rM   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   )observedra   )rJ   r_   )r   astyper   r   r   r   )r   catsergbrN   rM   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   numpyr6   pytestpandasrl   r   r   r   r   r   r	   pandas._testing_testingr   markslowparametrizearanger>   rO   r]   rc   rp   rx   r|   ru   rz   r~   r    r)   r'   <module>r      s       " " " " " "                               bIBIaOO344ooo..%//E4=11'9 '9 21 0/ /. 54 
'9T, , ,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)   