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
37
38
39
40
41
42
43
44
U
­ý°d{ã@slddlZddlZddlmmZddlmZddl    Z
ddl    m Z m Z m Z mZddlmZGdd„dƒZdS)éN)ÚPerformanceWarning)Ú    DataFrameÚIndexÚ
MultiIndexÚSeriesc@steZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z dd„Zdd„ZdS)ÚTestMultiIndexBasicc    Csˆtddddgddddgtj d¡dœƒ dd    g¡}t t¡|jd
W5QRX|j    d dd dg}t t¡|jd W5QRXdS)NréÚxÚzÚyé)ÚjimÚjoeZjolier r)rr
éé)r)
rÚnpÚrandomZrandÚ    set_indexÚtmZassert_produces_warningrÚlocZiloc©ÚselfÚdf©rúgd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/indexing/multiindex/test_multiindex.pyÚtest_multiindex_perf_warns
 
 
ýÿú  z-TestMultiIndexBasic.test_multiindex_perf_warncCspd}tj}dt_tt |¡t dg|t |¡f¡ƒ}|ddksFt‚|ddksVt‚|dd    ksft‚|t_dS)
Ni'i NÚa)rér)rér)rér)Ú_indexZ _SIZE_CUTOFFrrZarangerÚ from_arraysÚAssertionError)rÚnZ
old_cutoffÚsrrrÚ(test_indexing_over_hashtable_size_cutoff"s&z<TestMultiIndexBasic.test_indexing_over_hashtable_size_cutoffcCs¤tddtjdgddddgdd    tjd
gd œƒ}|jd d gdd}tddtjdgddddgdd    tjd
gd œtddtjdgd dtddddgd dgd}t ||¡dS)NZR1ZR2ZR4ÚC1ÚC2ÚC3ÚC4é
éé©rÚbÚcrr.F)Zdrop©Úname©Úindex)rrÚnanrrrÚassert_frame_equal)rrÚresultÚexpectedrrrÚtest_multi_nan_indexing1s" 
 ýÿ 
 ýþú z+TestMultiIndexBasic.test_multi_nan_indexingcCs–ttjtjtjtjgddddgddtjdgdœƒ}| d    d
g¡}td ddtjdgittjtjtjtjgd    d tddddgd
d gd }t ||¡dS)Nr&r'r(r)r*r+r,r-rr.r/r0r2)    rÚpdZNaTrr4rrrr5)rrr7rrrÚ"test_exclusive_nat_column_indexingHs 
 ýÿ ÿþü    z6TestMultiIndexBasic.test_exclusive_nat_column_indexingcCsØt dddg¡}tdddgƒ}tj||gddgd}tdd    d
gtjtjtjgd œ|d }t|d ddtjgd œ|d }|jdd}d|j    |ddfdf<t
  ||¡|jdd}d|j    |ddfgdf<t
  ||¡dS)NZ20190101Z20190102rr/Zindex1Úindex2©Únamesrrr)Úc1Úc2r2r>çð?T)Údeeprr?) r9Ú to_datetimerrr!rrr4Úcopyrrr5)rÚdtiÚidxÚmirr7Zdf2Zdf3rrrÚtest_nested_tuples_duplicates^s$   z1TestMultiIndexBasic.test_nested_tuples_duplicatescCsrttdƒdd}tjddddd}t ||g¡}ttj     d    d¡|d
}|j
d j }t   ||¡|j|jksnt‚dS) NrÚAr0z
2020-01-01rÚDÚB)ZperiodsÚfreqr1ér2r)rÚranger9Z
date_rangerZ from_productrrrZrandnrr3rZassert_index_equalrKr")rrErDrFrr6rrrÚ2test_multiindex_with_datatime_level_preserves_freqqs  zFTestMultiIndexBasic.test_multiindex_with_datatime_level_preserves_freqcCsddddg}dddg}t|||dœƒ}|jdd    gd
d td |itj||gd dd}t ||¡dS)Nyð?@y@Ày$@ð¿rr r)r    r r
r    r T)Zinplacer
)r    r r<r2)rrrr!rr5)rZ complex_dataZnon_complex_datar6r7rrrÚtest_multiindex_complex{s"
 
ýÿþþz+TestMultiIndexBasic.test_multiindex_complexcCsVt dddg¡}t|d}|jddidd}t dddg¡}t|d}t ||¡dS)    N)rHÚcat)rJrPr2rHÚAppler)r3Úlevel)rQrP)rÚ from_tuplesrÚrenamerr5)rrFrÚmi2r7rrrÚ&test_rename_multiindex_with_duplicatess 
 
z:TestMultiIndexBasic.test_rename_multiindex_with_duplicatesc
CsÌt dtjgtjtjgg¡}t tjdgtjtjgg¡}tddg|d}tddg|d}| |¡\}}t ddtjgtjtjtjgg¡}tdtjdg|d}ttjddg|d}    t ||¡t ||    ¡dS)Nç@T@g€T@rrr2r@g@©rr!rr4rZalignrÚassert_series_equal©
rZmi1rUZser1Zser2Zresult1Zresult2rFZ    expected1Z    expected2rrrÚ2test_series_align_multiindex_with_nan_overlap_onlyšs" zFTestMultiIndexBasic.test_series_align_multiindex_with_nan_overlap_onlyc
Cs¾t dtjgtjtjgg¡}t tjdgtjtjgg¡}tddg|d}tddg|d}| |¡\}}t dtjgtjtjgg¡}tddg|d}tddg|d}    t ||¡t ||    ¡dS)NrWrrr2rXrZrrrÚ%test_series_align_multiindex_with_nan©s z9TestMultiIndexBasic.test_series_align_multiindex_with_nancCs4tddgddggƒ ddg¡j ¡}|dks0t‚dS)Nrrr)rrr3Znuniquer")rr#rrrÚtest_nunique_smoke¸s$z&TestMultiIndexBasic.test_nunique_smokec CsRt tddgt ddgg¡ƒjddddgtddddgt ddddgg¡ƒ¡dS)Nrrrr.)rrYrrr!r)rrrrÚtest_multiindex_repeated_keys½s 
ÿ üz1TestMultiIndexBasic.test_multiindex_repeated_keysc    CsLt dddgdddgddd    gd
œ¡}tjtd d |d gW5QRXdS)Nrrrrrréé    r))Zfoo)Úbar)NÚ missing_key)Úmatch)rb)rÚ    from_dictÚpytestZraisesÚKeyErrorrrrrÚ#test_multiindex_with_na_missing_keyÆsýÿz7TestMultiIndexBasic.test_multiindex_with_na_missing_keyN)Ú__name__Ú
__module__Ú __qualname__rr%r8r:rGrNrOrVr[r\r]r^rgrrrrrs
 
    r)ÚnumpyrreZpandas._libs.indexZ_libsr3r Z pandas.errorsrZpandasr9rrrrZpandas._testingZ_testingrrrrrrÚ<module>s