1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
U
­ý°dã@s²ddlZddlZddlmZddlZddlmZ    ddl
m Z dd„Z ej  dejdg¡dd„ƒZd    d
„Zej  dejdg¡d d „ƒZej jd d„ƒZej  dddg¡dd„ƒZdS)éN)Úis_datetime64tz_dtype)Ú allow_na_opscCsÂ|}t |tdt|ƒdƒ¡}| ¡}tt |j¡ƒ}t    |t
j ƒrht
j   |¡}|j |_ tj||ddnVt    |t
jƒr¨t
j||jd}t|jƒr–| ¡}tj||ddnt |¡}t ||¡dS)NéT©Úexact©Údtype)ÚnpÚrepeatÚrangeÚlenÚuniqueÚlistÚdictÚfromkeysÚvaluesÚ
isinstanceÚpdÚ
MultiIndexÚ from_tuplesÚnamesÚtmÚassert_index_equalÚIndexrrÚ    normalizeÚarrayÚassert_numpy_array_equal)Úindex_or_series_objÚobjÚresultÚ unique_valuesÚexpected©r"úTd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/base/test_unique.pyÚ test_unique s   
 
r$Únull_objc Cs&|}t|ƒst d¡n6t|ƒdkr0t d¡nt|tjƒrNt d|›d¡|j}||dd…<t|ƒ}t     
|t dt|ƒdƒ¡}|||j d}|  ¡}t |j¡}d    d
„|Dƒ}|g|}    t|tjƒrtj|    |j d}
t|j ƒrô| ¡}|
 ¡}
tj||
d d nt    j|    |j d}
t ||
¡dS) Nú$type doesn't allow for NA operationsrz%Test doesn't make sense on empty dataúMultiIndex can't hold 'ú'rércSsg|]}t |¡s|‘qSr")rZisnull)Ú.0Úvalr"r"r#Ú
<listcomp>6s
z$test_unique_null.<locals>.<listcomp>Tr)rÚpytestÚskipr rrrÚ_valuesÚtyper    r
r rr rrrrrrrrrr) r%rrrÚklassÚrepeated_valuesrZunique_values_rawZunique_values_not_nullr r!r"r"r#Útest_unique_null s0      
 
r3cCsB|}t |tdt|ƒdƒ¡}t| ¡ƒ}|jdd|ks>t‚dS)NrF©Údropna)r    r
r r r ÚnuniqueÚAssertionError)rrr!r"r"r#Ú test_nuniqueDs r8cCsþ|}t|ƒst d¡nt|tjƒr6t d|›d¡|j}||dd…<t|ƒ}t     |t
dt |ƒdƒ¡}|||j d}t|tj ƒrº| ¡t |jƒksšt‚|jdd    t |jƒdksút‚n@t | ¡ƒ}| ¡td|dƒksàt‚|jdd    td|ƒksút‚dS)
Nr&r'r(rr)rrFr4)rr-r.rrrr/r0r    r
r r rZCategoricalIndexr6Ú
categoriesr7r Úmax)r%rrrr1r2Znum_unique_valuesr"r"r#Útest_nunique_nullKs       r;cCshd}||gdƒ}| ¡}t|tjƒrHtjdgtd}tj||ddntjdgtd}t     ||¡dS)Nuí ½r)rTr)
r rrrÚobjectrrr    rr)Zindex_or_seriesZuvalrrr!r"r"r#Útest_unique_bad_unicodeds r=r5TFcCs@t ddtjtjdtjg¡}| |¡}|r4|dks<nds<t‚dS)NÚyesré)rZSeriesZNAr    ÚnanZNaTr6r7)r5ZserÚresr"r"r#Útest_nunique_dropnats
rB)Únumpyr    r-Zpandas.core.dtypes.commonrZpandasrZpandas._testingZ_testingrZpandas.tests.base.commonrr$ÚmarkZ parametrizer@r3r8r;Z
single_cpur=rBr"r"r"r#Ú<module>s   
#