
    Mh                     @   S SK rS SKrS SKJr  S SKrS SKJr	  S SK
Jr  \R                  R                  S5      S 5       r\R                  R                  S5      \R                  R                  S\R                   S/5      S 5       5       rS r\R                  R                  S\R                   S/5      S	 5       r\R                  R(                  \R                  R+                  \" 5       S
S9S 5       5       r\R                  R                  SSS/5      S 5       rg)    N)using_pyarrow_string_dtype)allow_na_opsz3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc           	         U n[         R                  " U[        S[        U5      S-   5      5      nUR	                  5       n[        [        R                  UR                  5      5      n[        U[        R                  5      (       aF  [        R                  R                  U5      nUR                  Ul        [        R                  " X$SS9  g [        U[        R                   5      (       am  [        R                   " X1R"                  S9n[        UR"                  [        R$                  5      (       a  UR'                  5       n[        R                  " X$SS9  g [         R(                  " U5      n[        R*                  " X$5        g )N   Texactdtype)nprepeatrangelenuniquelistdictfromkeysvalues
isinstancepd
MultiIndexfrom_tuplesnamestmassert_index_equalIndexr
   DatetimeTZDtype	normalizearrayassert_numpy_array_equal)index_or_series_objobjresultunique_valuesexpecteds        O/var/www/html/env/lib/python3.13/site-packages/pandas/tests/base/test_unique.pytest_uniquer&      s    
C
))Cq#c(Q,/
0CZZ\F szz23M#r}}%%==,,];
fd;	C	"	"88M;cii!3!344))+H
fd;88M*
##F5    null_objc           	      6   Un[        U5      (       d  [        R                  " S5        O_[        U5      S:  a  [        R                  " S5        O9[	        U[
        R                  5      (       a  [        R                  " SU  S35        UR                  nXSS& [        U5      n[        R                  " U[        S[        U5      S-   5      5      nU" XRR                  S9nUR                  5       n[        R                  UR                   5      nU Vs/ s H"  n[
        R"                  " U5      (       a  M   UPM$     n	nU /U	-   n
[	        U[
        R$                  5      (       a}  [
        R$                  " XR                  S9n[	        UR                  [
        R&                  5      (       a   UR)                  5       nUR)                  5       n[*        R,                  " XkS	S
9  g [        R.                  " XR                  S9n[*        R0                  " Xk5        g s  snf )N$type doesn't allow for NA operationsr   z%Test doesn't make sense on empty dataMultiIndex can't hold ''r      r	   Tr   )r   pytestskipr   r   r   r   _valuestyper   r   r   r
   r   r   r   r   isnullr   r   r   r   r   r   r   )r(   r    r!   r   klassrepeated_valuesr"   unique_values_rawvalunique_values_not_nullr#   r$   s               r%   test_unique_nullr8   !   s    C:;	SA;<	C	'	'-hZq9:[[F1QKIEiiaVq(ABO
yy
1CZZ\Fcjj1 .?U->cbiiPSnc->UJ!77M#rxx  88M;cii!3!344%%'F))+H
fd;88M;
##F5 Vs   H7Hc           	          U n[         R                  " U[        S[        U5      S-   5      5      n[        UR	                  5       5      nUR                  SS9U:X  d   eg )Nr   Fdropna)r   r   r   r   r   nunique)r    r!   r$   s      r%   test_nuniquer=   F   sO    
C
))Cq#c(Q,/
0C3::< H;;e;$000r'   c           	         Un[        U5      (       d  [        R                  " S5        O9[        U[        R
                  5      (       a  [        R                  " SU  S35        UR                  nXSS& [        U5      n[        R                  " U[        S[        U5      S-   5      5      nU" XRR                  S9n[        U[        R                  5      (       aU  UR                  5       [        UR                  5      :X  d   eUR                  SS	9[        UR                  5      S-   :X  d   eg [        UR!                  5       5      nUR                  5       [#        SUS-
  5      :X  d   eUR                  SS	9[#        SU5      :X  d   eg )
Nr*   r+   r,   r   r-   r   r	   Fr:   )r   r.   r/   r   r   r   r0   r1   r   r   r   r   r
   CategoricalIndexr<   
categoriesr   max)r(   r    r!   r   r3   r4   num_unique_valuess          r%   test_nunique_nullrC   M   s8   
C:;	C	'	'-hZq9:[[F1QKIEiiaVq(ABO
yy
1C#r**++{{}CNN 3333{{%{(C,?!,CCCC

-{{}A'81'< ===={{%{(C3D,EEEEr'   zdecoding fails)reasonc                 >   SnU " U/S-  5      nUR                  5       n[        U[        R                  5      (       a0  [        R                  " S/[        S9n[
        R                  " X4SS9  g [        R                  " S/[        S9n[
        R                  " X45        g )Nu   r-   r	   Tr   )
r   r   r   r   objectr   r   r   r   r   )index_or_seriesuvalr!   r"   r$   s        r%   test_unique_bad_unicoderI   f   sw     D
4&1*
%CZZ\F#rxx  88XJf5
fd;88XJf5
##F5r'   r;   TFc                     [         R                  " SS[         R                  [        R                  S [         R
                  /5      nUR                  U 5      nU (       a  US:X  d   eg g )Nyesr   )r   SeriesNAr   nanNaTr<   )r;   serress      r%   test_nunique_dropnarR   w   sL     ))UE255"&&$?
@C
++f
C3!8$$18r'   )numpyr   r.   pandas._configr   pandasr   pandas._testing_testingr   pandas.tests.base.commonr   markfilterwarningsr&   parametrizerN   r8   r=   rC   
single_cpuxfailrI   rR    r'   r%   <module>r_      s      5   1 RS6 T6* RSbffd^4 6 5 T 6F1 bffd^4F 5F0 -/8HI6 J 6 D%=1% 2%r'   