zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
U
­ý°dG1ã@sþddlZddlZddlmZddlmZddlZddlm    Z    m
Z
ddl m Z d+dd„Zdd    „Zd
d „Zd d „Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zej dddg¡dd„ƒZej d ddg¡d!d"„ƒZd#d$„Zd%d&„Zd'd(„Zd)d*„Z dS),éN)ÚPY311)ÚDatetimeTZDtype)ÚCategoricalIndexÚ
MultiIndexFcCsPt|ƒt|ƒkst‚t||ƒD],\}}t |¡}t |¡}tj|||dqdS)N©Ú check_dtype)ÚlenÚAssertionErrorÚzipÚnpZasarrayÚtmZassert_numpy_array_equal)ÚactualÚexpectedrZactÚexp©rú^d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/indexes/multi/test_get_set.pyÚassert_matchings
 
 
rc    Cs~ddg|_| d¡dkst‚| d¡dks.t‚d}tjt|d| d¡W5QRXtjtdd| d¡W5QRXdS)Nérz/Too many levels: Index has only 2 levels, not 3©ÚmatchézLevel fourth not foundZfourth)ÚnamesÚ_get_level_numberr    ÚpytestÚraisesÚ
IndexErrorÚKeyError)ÚidxÚmsgrrrÚtest_get_level_number_integers
rcCshtjdddgdddgtjdddd    gd
d d gd }t t d¡t d¡tdddœ¡}t     ||j
¡dS)NrréÚaÚbÚcÚ20200101ÚUTC©ZperiodsÚtzÚintÚstringÚdt©rÚint64ÚOÚutc©r')r(r)r*© rÚ from_productÚpdÚ
date_rangeÚSeriesr Údtyperr Úassert_series_equalÚdtypes©Z idx_multityperrrrÚtest_get_dtypes%s þýÿr9c    Cs^t dddgdddgtjdddd    g¡}t t d
¡t d ¡td d dœ¡}t     ||j
¡dS)Nrrr r!r"r#r$r%r&r,r-r.r/)Zlevel_0Zlevel_1Zlevel_2r0r8rrrÚtest_get_dtypes_no_level_name5sýÿýÿr:cCsptjdddgdddgtjdddd    gd
d
d
gd j}tjt d ¡t d ¡tddgd
d
d
gd}t     
||¡dS)Nrrr r!r"r#r$r%r&ÚAr+r,r-r.r/)Úindex) rr1r2r3r7r4r r5rr r6)ÚresultrrrrÚ%test_get_dtypes_duplicate_level_namesHsýúþr>c    CsT|}tjtdd|j d¡W5QRXtjtdd|j d¡W5QRXdS)NzToo many levelsrrznot a valid level numberéýÿÿÿ)rrrr<r)Z multiindex_dataframe_random_dataÚframerrrÚ#test_get_level_number_out_of_boundsYs
rAc    Cs†|j|jkst‚dd„|Dƒ}| |¡}|j|ks6t‚|j|ksDt‚d}tjt|d| ||¡W5QRXdd„|Dƒ}|j|dd}|dks˜t‚|j|ks¦t‚|j|ddd    }|j|ksÆt‚|j|d|d
gksàt‚|j|dddd }|dkst‚|j|d|d
gkst‚|j|dd
gd    }|j|ks@t‚|j|ksPt‚|j|dd
gdd }|dksrt‚|j|ks‚t‚dS) NcSsg|] }|d‘qS)ZSUFFIXr©Ú.0ÚnamerrrÚ
<listcomp>esz)test_set_name_methods.<locals>.<listcomp>z9Length of names must match number of levels in MultiIndexrcSsg|] }|d‘qS)ZSUFFIX2rrBrrrrElsT)Úinplacer©Úlevelr©rHrF)ÚrenameÚ    set_namesr    rrrÚ
ValueError)rZ index_namesZ    new_namesÚindrZ
new_names2ÚresrrrÚtest_set_name_methodsbs0
 rOc    Csš|j}dd„|Dƒ}|j}|\}}dd„|Dƒ}dd„|Dƒ}||g}d}tjt|d ||_W5QRXtrrdnd}tjt|d ||_W5QRXdS)    NcSsg|]}dd„|Dƒ‘qS)cSsg|] }|d‘qS©r!r©rCZlevrrrrEˆsz=test_set_levels_codes_directly.<locals>.<listcomp>.<listcomp>r©rCrHrrrrEˆsz2test_set_levels_codes_directly.<locals>.<listcomp>cSsg|]}|dd‘qS©rr r©rCÚxrrrrEŒscSsg|]}|dd‘qS©rrrTrrrrEszCan't set attributerz5property 'codes' of 'MultiIndex' object has no setterzcan't set attribute)ÚlevelsÚcodesrrÚAttributeErrorr)rrWÚ
new_levelsrXÚ major_codesÚ minor_codesÚ    new_codesrrrrÚtest_set_levels_codes_directly„s ÿýr^c    CsÎ|j}dd„|Dƒ}| |¡}t|j|ƒt|j|ƒ|j|ddd}t|j|d|dgƒt|j|ƒ|j|ddd}t|j|d|dgƒt|j|ƒ|j|ddgd}t|j|ƒt|j|ƒ| ¡}tjtdd|jdgddW5QRXt|j|jd    d
tjtdd |jddd d d dgddW5QRXt|j|jd    d
tjt    dd|jdddW5QRXt|j|jd    d
tjt    dd|jdddW5QRXt|j|jd    d
dS)NcSsg|]}dd„|Dƒ‘qS)cSsg|] }|d‘qSrPrrQrrrrE¡sz.test_set_levels.<locals>.<listcomp>.<listcomp>rrRrrrrE¡sz#test_set_levels.<locals>.<listcomp>rrGrz^Onrr#Trrr ééz^Levelsz^Codes)
rWÚ
set_levelsrÚcopyrrrLÚ    set_codesrXÚ    TypeError)rrWrZÚind2Zoriginal_indexrrrÚtest_set_levelss6
      $rfc    CsD|j}|\}}dd„|Dƒ}dd„|Dƒ}||g}| |¡}t|j|ƒt|j|ƒ|j|ddd}t|j|d|dgƒt|j|ƒ|j|ddd}t|j|d|dgƒt|j|ƒ|j|ddgd}t|j|ƒt|j|ƒt dd„tdƒDƒ¡}td    d
d
ƒ}t d d„|Dƒ¡}|j|dd }| |¡s@t‚dS) NcSsg|]}|dd‘qSrSrrTrrrrEÏsz"test_set_codes.<locals>.<listcomp>cSsg|]}|dd‘qSrVrrTrrrrEÐsrrGrcSsg|] }d|f‘qS©rr©rCÚirrrrEçsé‚ééÿÿÿÿcSsg|] }d|f‘qSrgrrhrrrrEés)rXrH)rXrcrrÚ from_tuplesÚrangeÚequalsr    )    rrXr[r\r]rerMrr=rrrÚtest_set_codesÊs,
       rpc    Cs|j|j}}|j}tjtdd| |dg¡W5QRXtjtdd| |dg¡W5QRXtjtdd| |dg¡W5QRXtjt    dd| |d¡W5QRXtjt    dd| |d¡W5QRXtjt    dd| |d¡W5QRXtjt    dd|j|dddgd    W5QRXtjt    dd|j|dd    W5QRXtjt    dd|j|dddgd    W5QRXtjt    dd|j|dd    W5QRXtjtdd|j|dddgd    W5QRXtjt    d
d|j|dd    W5QRXdS) NzLength of levelsrrzLength of codeszLength of nameszlist of lists-likez    list-likerrGzNames must be a)
rWrXrrrrLrarcrKrd)rrWrXrrrrÚ%test_set_levels_codes_names_bad_inputðs4   rqrFTcCsTtddggddggdgd}t ddgg¡}|jdd|d}|rD|}t ||¡dS)NrrÚfirst)rWrXrrI)rr1rKr Úassert_index_equal)rFrÚmr=rrrÚtest_set_names_with_nlevel_1s ruÚorderedcCsŽt tdƒddddgg¡}ttdƒ|d}|j|dd}t|ddddgg|jd    }t ||¡| d¡}ttd
ƒ|j    |j
d }t ||¡dS) NZxyzxrrrr Zbac)rvrG)rWrXZbacb)Ú
categoriesrv) rÚ from_arraysÚlistrrarXr rsZget_level_valuesrwrv)rvr<Zcidxr=rZ
result_lvlZ expected_lvlrrrÚtest_set_levels_categorical.s 
ÿrzcCs¨ddddddg}dddgd}tj||gddgd    }tjtj d
d ¡d d ddg|d}| ¡}|jdkslt    ‚|j
j dks|t    ‚d|j d<|jdks”t    ‚|j
j dks¤t    ‚dS)NZhansÚgretheÚ1Ú2Ú3rÚNameÚNumberr+ér_ÚoneZtwoZthreeZfour)Úcolumnsr<)rr€gö(\ÂÕX@))r{Ú4r‚) rrxr2Z    DataFramer ÚrandomZrandnZ
sort_indexZ_is_copyr    r<rÚat)Zlev1Zlev2rZdfrrrÚtest_set_value_keeps_names?s
ÿ
r‡cCstdddg}dgd}tj||gddgd}|jttdd    d
gƒdd }dddg}tj||gddgd}t ||¡dS) Nrrr ZblackÚsizeÚcolorr+r~r}r|rG)rrxraÚmapr(r rs)ÚsizesÚcolorsr<r=Zexpected_sizesrrrrÚtest_set_levels_with_iterableOs
 
 
rcCsNtjggdgd}|jt g¡dd}tjt g¡gdgd}t ||¡dS)Nr;r+rrG)rrxrar2Z DatetimeIndexr rs)Zmidxr=rrrrÚtest_set_empty_level\srŽc    Csxtjddgddgd}tjtdd| dd    d
gd ¡W5QRXtjtdd| d d gd d ggd ¡W5QRXdS) N)rr‚)r r‚ZfooÚbarr+zpositional argumentsrr!r"r#rr)rrmrrrdrarc)rrrrÚ test_set_levels_pos_args_removaldsþûr)F)!Únumpyr rZ pandas.compatrZpandas.core.dtypes.dtypesrZpandasr2rrZpandas._testingZ_testingr rrr9r:r>rArOr^rfrprqÚmarkZ parametrizerurzr‡rrŽrrrrrÚ<module>s2   
 
     "-&/