
    bMh                        d dl Zd dlZd dlZd dlmZ d dlm	Z	 ej
                            d          d             Zej
                            d          ej
                            dej        dg          d                         Zd Zej
                            dej        dg          d             Zej
        j        d	             Zej
                            d
ddg          d             ZdS )    N)allow_na_opsz3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc           	          | }t          j        |t          dt          |          dz                       }|                                }t          t                              |j                            }t          |t          j                  rDt          j                            |          }|j        |_        t          j        ||d           d S t          |t          j                  rgt          j        ||j                  }t          |j        t          j                  r|                                }t          j        ||d           d S t          j        |          }t          j        ||           d S )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        ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/base/test_unique.pytest_uniquer%   	   s>   
C
)Cq#c((Q,//
0
0CZZ\\F sz2233M#r}%% 6=,,];;
fhd;;;;;;	C	"	" 68M;;;ci!344 	,))++H
fhd;;;;;;8M**
#FH55555    null_objc           	         |}t          |          st          j        d           nZt          |          dk     rt          j        d           n2t	          |t
          j                  rt          j        d|  d           |j        }| |dd<   t          |          }t          j
        |t          dt          |          dz                       } |||j                  }|                                }t                              |j                  }d	 |D             }| g|z   }	t	          |t
          j                  r{t          j        |	|j                  }
t	          |j        t
          j                  r(|                                }|
                                }
t)          j        ||
d
           d S t          j        |	|j                  }
t)          j        ||
           d S )N$type doesn't allow for NA operationsr   z%Test doesn't make sense on empty dataMultiIndex can't hold ''r      r   c                 :    g | ]}t          j        |          |S  )r   isnull).0vals     r$   
<listcomp>z$test_unique_null.<locals>.<listcomp>6   s&    UUUcbiPSnnUcUUUr&   Tr   )r   pytestskipr   r   r   r   _valuestyper
   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   )r'   r   r    r   klassrepeated_valuesr!   unique_values_rawunique_values_not_nullr"   r#   s              r$   test_unique_nullr;      s    C ;:;;;;	SA;<<<<	C	'	' ;9h999:::[FF1Q3KIIEiaVq(A(ABBO
%sy
1
1
1CZZ\\Fcj11 VU->UUUJ!77M#rx   68M;;;ci!344 	,%%''F))++H
fhd;;;;;;8M;;;
#FH55555r&   c           	          | }t          j        |t          dt          |          dz                       }t          |                                          }|                    d          |k    sJ d S )Nr   Fdropna)r
   r   r   r   r   nunique)r   r    r#   s      r$   test_nuniquer@   D   sf    
C
)Cq#c((Q,//
0
0C3::<<  H;;e;$$000000r&   c           	      X   |}t          |          st          j        d           n2t          |t          j                  rt          j        d|  d           |j        }| |dd<   t          |          }t          j	        |t          dt          |          dz                       } |||j                  }t          |t          j                  r_|                                t          |j                  k    sJ |                    d	          t          |j                  dz   k    sJ d S t          |                                          }|                                t#          d|dz
            k    sJ |                    d	          t#          d|          k    sJ d S )
Nr)   r*   r+   r   r,   r   r   Fr=   )r   r3   r4   r   r   r   r5   r6   r
   r   r   r   r	   CategoricalIndexr?   
categoriesr   max)r'   r   r    r   r7   r8   num_unique_valuess          r$   test_nunique_nullrF   K   s   
C ;:;;;;	C	'	' ;9h999:::[FF1Q3KIIEiaVq(A(ABBO
%sy
1
1
1C#r*++ F{{}}CN 3 33333{{%{((C,?,?!,CCCCCCC

--{{}}A'81'< = ====={{%{((C3D,E,EEEEEEEr&   c                 ^   d} | |gdz  t                     }|                                }t          |t          j                  r5t          j        dgt                     }t          j        ||d           d S t          j        dgt                     }t          j	        ||           d S )Nu   r,   r   Tr   )
objectr   r   r   r   r   r   r
   r   r   )index_or_seriesuvalr    r!   r#   s        r$   test_unique_bad_unicoderK   d   s     D
/4&1*F
3
3
3CZZ\\F#rx   68XJf555
fhd;;;;;;8XJf555
#FH55555r&   r>   TFc                     t          j        ddt           j        t          j        d t           j        g          }|                    |           }| r|dk    snd S J d S )Nyesr   )r   SeriesNAr
   nanNaTr?   )r>   serress      r$   test_nunique_dropnarT   t   sS     )UE25"&$?
@
@C
++f

C$3!888888888r&   )numpyr
   r3   pandasr   pandas._testing_testingr   pandas.tests.base.commonr   markfilterwarningsr%   parametrizerP   r;   r@   rF   
single_cpurK   rT   r.   r&   r$   <module>r^      sm                  1 1 1 1 1 1 RSS6 6 TS6* RSSbfd^44 6  6 54 TS 6F1 1 1 bfd^44F F 54F0 6 6 6 D%=11% % 21% % %r&   