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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
U
­ý°dükã@sÌddlmZmZddlZddlZddlZddlmZddlm    Z    ddl
Z ddl
m Z m Z mZmZmZddlmZdd„Zdd    „Zd
d „Zd d „Zdd„Zdd„Zdd„Zdd„Zdd„Zej de jdddde jddddfedddd d!edddd"d!fe j d#ddde j d$dddfg¡d%d&„ƒZ!d'd(„Z"d)d*„Z#d+d,„Z$ej d-d.d.gd.d/gd.gd/gd.d/ggd0d0gd0d1gd0gd1gd2d3d.gd/fd.d/gfd0d4d5d0gd1fd2d/gd.d6gd4d1gd7d8d9g¡d:d;„ƒZ%ej d<d.d/dgd0d1gfgd0d1gfd.d/dggfg¡d=d>„ƒZ&d?d@„Z'dAdB„Z(dCdD„Z)dEdF„Z*dGdH„Z+dIdJ„Z,dKdL„Z-dMdN„Z.dOdP„Z/ej dQggfdRdSdTggfgd0d1dUgfg¡dVdW„ƒZ0ej dXe1e2dYƒƒ¡dZd[„ƒZ3ej d\d.d.gd.d/gd.gd/gd0d0gd0d1gd0gd1gg¡d]d^„ƒZ4d_d`„Z5dadb„Z6ej dcdddeg¡ej dfdgdh„didh„djdh„g¡dkdl„ƒƒZ7dmdn„Z8dodp„Z9ej dqed.d/dgdRdred0d1gdSdrdRdSgfed.d/dgdRdrd0d1gdRdgfd.d/dgd0d1gdfg¡dsdt„ƒZ:dudv„Z;dwdx„Z<dydz„Z=d{d|„Z>ejj?ed}d~dd€„ƒZ@ej ded.d/ddYgƒd.d/ddYgd.d/gddYgd‚dƒgge d.d/ddYgƒe Ad.d/gddYgd‚dƒgg¡d„g¡d…d†„ƒZBd‡dˆ„ZCej d‰ddŠd‹gfdŒdgdŒdgfg¡dŽd„ƒZDej dd‘d0d1dUgd’fg¡d“d”„ƒZEd•d–„ZFd—d˜„ZGd™dš„ZHd›dœ„ZIddž„ZJdŸd „ZKdS)¡é)ÚdateÚdatetimeN)Úpa_version_under7p0)Ú'construct_1d_object_array_from_listlike)ÚIndexÚ
MultiIndexÚSeriesÚ    TimestampÚ
date_rangecCsltddddggddddggd    gd
}t|tƒs2t‚tddddgd    d }t |jd|¡|jd    gksht‚dS) NÚfooÚbarÚbazÚquxréééÚfirst©ÚlevelsÚcodesÚnames©Úname)rÚ
isinstanceÚAssertionErrorrÚtmÚassert_index_equalrr©ÚresultÚexpected©r úcd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/indexes/multi/test_constructors.pyÚtest_constructor_single_levels ÿr"c    Cszd}tjt|dtggdW5QRXd}tjt|dtgdW5QRXtjt|dtgdW5QRXdS)Nznon-zero number of levels/codes©Úmatch©rrzMust pass both levels and codes©r)r)ÚpytestÚraisesÚ
ValueErrorrÚ    TypeError©Úmsgr r r!Útest_constructor_no_levels#sr-c    Csêddgddgg}ddddgddddgg}dgdgf}d}tjt|d    t|||d
W5QRXtddgddggddddgddddggd d
}d gd gg}tjt|d    |j|dW5QRXtjt|d    |j|dW5QRXdS)NrrÚoneÚtworr r z(MultiIndex\.name must be a hashable typer#r)r r ZfoorZbarr©r)r'r(r*rÚrenameZ    set_names)rrrr,ÚmiZrenamedr r r!Ú"test_constructor_nonhashable_names/s  ý r3c    Cs¦t dg¡t dg¡t dg¡g}dg}d}tjt|dt||dW5QRXd}d    }d
}tjt|d.tdgd ggd dddgd dd dggdW5QRXtjt|d*tdgd ggd d d d gd d ggdW5QRXtjt|d| ¡ dgd gg¡W5QRXtjt|d$| ¡ d d d d gd d gg¡W5QRX| ¡jd d d d gd d ggddtjt|d&tdgd ggd dgd d ggdW5QRXdS)NrrrÚaz+Length of levels and codes must be the samer#r%zbOn level 0, code max \(3\) >= length of level \(1\)\. NOTE: this index is in an inconsistent statezUnequal code lengths: \[4, 2\]z"On level 0, code value \(-2\) < -1ÚbréF)rZverify_integrityéþÿÿÿ)    ÚnpÚarrayr'r(r)rÚcopyÚ
set_levelsÚ    set_codes)Úidxrrr,Z length_errorZ label_errorZcode_value_errorr r r!Ú(test_constructor_mismatched_codes_levelsGs("ÿ2. ("r>cCsVttjdtjddggddddddggd}ttjdtjddggddddddggd}t ||¡ttjd    tjddggddddddggd}ttjd    tjddggddddddggd}t ||¡tddddd
ggddddddggd tjd    tjddgg¡}t ||¡ttjd    tjddggddddddggd ddddddgg¡}t ||¡dS) Né€rréÿÿÿÿrrr6r%Úsé)    rr8ÚnanÚpdÚNaTrrr;r<rr r r!Útest_na_levelsms@ÿÿ ÿÿ ÿþ ÿþrFc    Cs¤t dddg¡}t dddddddg¡}|d}t||g||gdd}|jdd|ks\t‚d    |d<|jdd|kszt‚|d}d
|d<|jdd|ks t‚dS) Nr4r5ÚcrrrT)rrr:éZPANDA)r8r9rrrr)rrÚvalr2r r r!Útest_copy_in_constructorsrJcCsŽdd„t|j|jƒDƒ}tj||jd}t ||¡t tj    t
dƒgddgg¡}|jd  t t
dƒgƒ¡snt ‚|jd  t ddgƒ¡sŠt ‚dS)    NcSs g|]\}}t |¡ |¡‘qSr ©r8ÚasarrayÚtake©Ú.0ÚlevZ level_codesr r r!Ú
<listcomp>žsÿz$test_from_arrays.<locals>.<listcomp>r0Z20130101r4r5rr)ÚziprrrÚ from_arraysrrrrDrEr    Úequalsrr©r=Úarraysrr r r!Útest_from_arrayss þ rWc    Csddd„t|j|jƒDƒ}tjt|ƒ|jd}t ||¡d}t    j
t |dt d¡W5QRXdS)NcSs g|]\}}t |¡ |¡‘qSr rKrNr r r!rQ¯sÿz-test_from_arrays_iterator.<locals>.<listcomp>r0z/Input must be a list / sequence of array-likes.r#r) rRrrrrSÚiterrrrr'r(r*)r=rVrr,r r r!Útest_from_arrays_iterator­s þ rYcCs<tdd„t|j|jƒDƒƒ}tj||jd}t ||¡dS)Ncss&|]\}}tt |¡ |¡ƒVqdS©N)Útupler8rLrMrNr r r!Ú    <genexpr>¿sÿz*test_from_arrays_tuples.<locals>.<genexpr>r0)    r[rRrrrrSrrrrUr r r!Útest_from_arrays_tuples¾s
 þr])Úidx1Úidx2ú
2011-01-01ÚDr©ÚfreqÚperiodsz
2015-01-01ÚHú2015-01-01 10:00ú
US/Eastern©rcrdÚtzú
Asia/Tokyoú1 daysz2 hourscCs|t ||g¡}t | d¡|¡t | d¡|¡t t|ƒt|ƒg¡}t | d¡|¡t | d¡|¡t ||¡dS)Nrr)rrSrrÚget_level_valuesr)r^r_rÚresult2r r r!Ú=test_from_arrays_index_series_period_datetimetz_and_timedeltaÉsrncCstddddd}tdddd}tjdddd}tjd    ddd}t ||||g¡}t | d
¡|¡t | d ¡|¡t | d ¡|¡t | d¡|¡t t    |ƒt    |ƒt    |ƒt    |ƒg¡}t | d
¡|¡t | d ¡|¡t | d ¡|¡t | d¡|¡t ||¡dS) Nrfrarrgrhrerbrkr`rrr)
r
rDÚtimedelta_rangeÚ period_rangerrSrrrlr)r^r_Zidx3Zidx4rrmr r r!Ú)test_from_arrays_index_datetimelike_mixedæs"ÿrqcCsÖtjtdƒtdƒdd}tjtdƒtdƒdd}t ||g¡}t | d¡|¡t | d¡|¡t t|ƒt|ƒg¡}t | d¡|¡t | d¡|¡t |j    |j    g¡}t | d¡|¡t | d¡|¡dS)NÚabcaabÚbacF©Ú
categoriesÚorderedTrr)
rDÚCategoricalIndexÚlistrrSrrrlrÚvalues)r^r_rrmZresult3r r r!Ú)test_from_arrays_index_series_categoricalýsrzc    CsÔd}tjt|dtjgdW5QRXtjggdgd}t|tƒsJt‚tgdd}t     |j
d|¡|j dgksxt‚dD]R}gg|}t d    ƒd|…}tj||d}tgg|gg||d
}t     ||¡q|dS) Nú)Must pass non-zero number of levels/codesr#©rVÚA©rVrrr)rrÚABCr) r'r(r)rrSrrrrrrrrx)r,rrÚNrVrr r r!Útest_from_arrays_emptys 
rÚinvalid_sequence_of_arraysrrr4r5©r©rr©r4©r4r5©r)rƒr)rr‡)r…r5c    Cs.d}tjt|dtj|dW5QRXdS)Nz.Input must be a list / sequence of array-likesr#r|)r'r(r*rrS)r‚r,r r r!Útest_from_arrays_invalid_input%srˆz
idx1, idx2c    Cs0d}tjt|dt ||g¡W5QRXdS)Nz ^all arrays must be same length$r#)r'r(r)rrS)r^r_r,r r r!Ú"test_from_arrays_different_lengthsGsr‰cCsttdddgdd}tdddgd    d}tj||gdd
}tdddgdddggd ddgd ddggdd }t ||¡dS) Nrrrr rr4r5rGr r0rr)rrrSrr©r4r5rrr r r!Ú$test_from_arrays_respects_none_namesQsÿr‹c    Cstd}tjt|dt g¡W5QRXtddgddggddgddggdd    gd
}tjd dd    gd }t ||¡dS) Nz-Cannot infer number of levels from empty listr#rrrr6rr4r5r)r„)rr6r0)r'r(r*rÚ from_tuplesrr)r,rrr r r!Útest_from_tuplesasÿrc    Cs‚tddgddggddgddggddgd}tjtddgddgƒddgd    }t ||¡d
}tjt|d t d¡W5QRXdS) Nrrrr6rr4r5rr0z/Input must be a list / sequence of tuple-likes.r#)rrŒrRrrr'r(r*)rrr,r r r!Útest_from_tuples_iteratorosÿ  rŽcCs8tjgddgd}tjgggddgd}t ||¡dS)Nr4r5r0r~)rrŒrSrrrr r r!Útest_from_tuples_emptysrcCs"t |¡}|j|jk ¡st‚dSrZ)rrŒryÚallr)r=rr r r!Útest_from_tuples_index_values†s
r‘c    Cs^dddg}d}tjt|dt|ddW5QRXtjt|dt|ddW5QRXdS)    N)rrr)rrr)rrrú*Names should be list-like for a MultiIndexr#Úabcrr4)r'r(r)r)Úlir,r r r!Útest_tuples_with_name_string‹s 
r•cCsftjdddgdddggdddgd     ddg¡}tjd
d gd d }tjddgdg|d}t ||¡dS)Nrrr6r„rr4r5rG©Úcolumns)rr)r6r„r†r0)r—Úindex)rDÚ    DataFrameZ    set_indexrrŒrZassert_frame_equal)rr=rr r r!Ú!test_from_tuples_with_tuple_label–sÿþršc    Cs,d}tjt|dt g¡W5QRXdS)Nr{r#)r'r(r)rÚ from_productr+r r r!Ú#test_from_product_empty_zero_levels£srœcCsDtjggdgd}tgdd}t |jd|¡|jdgks@t‚dS)Nr}r0rr)rr›rrrrrrrr r r!Ú!test_from_product_empty_one_levelªs rz first, secondr r r rGcCs@ddg}tj||g|d}t||gggg|d}t ||¡dS)Nr}ÚBr0r©rr›rr)rÚsecondrrrr r r!Ú"test_from_product_empty_two_levels±sr¡r€r6cCsTdddg}tt|ƒƒ}tjg|gg|d}tg|gggggg|d}t ||¡dS)Nr}ržÚCr0r)rxÚrangerr›rr)r€rZlvl2rrr r r!Ú$test_from_product_empty_three_levels»s
 
 r¤Ú invalid_inputc    Cs.d}tjt|dtj|dW5QRXdS)NzDInput must be a list / sequence of iterables|Input must be list-liker#)Ú    iterables)r'r(r*rr›)r¥r,r r r!Útest_from_product_invalid_inputÅsr§cCs`tddd}t ddg|g¡}tdtdƒfdtdƒfdtdƒfdtdƒfgƒ}t |j|¡dS)Nz
2000-01-01r)rdrz
2000-01-02)r
rr›rr    rZassert_numpy_array_equalry)Zdt_indexr2Zetalonr r r!Útest_from_product_datetimeindexÎs 
 
 
 
üÿr¨cCs<ttdƒƒ}ddg}t ||g¡}tj|jd|dddS)NrBr4r5rT)Úexact)rr£rr›rrZ_levels)ÚrngÚotherr2r r r!Útest_from_product_rangeindexÜs r¬rvFTÚfcCs|SrZr ©Úxr r r!Ú<lambda>åór°cCst|ƒSrZ)rr®r r r!r°år±cCs|jSrZ)ryr®r r r!r°år±cCshddg}tjtdƒtdƒ|d}tjtdƒtdƒtdƒ|d}t |||ƒg¡}t | d¡|¡dS)Nr r rrrsrtr)rDrwrxrr›rrrl)rvr­rr=rrr r r!Ú*test_from_product_index_series_categoricaläsÿr²c    Csbdddg}dddg}ddg}tj||g|d    }d
d d d dddddg    }tj||d    }t ||¡dS)Nr r Úbuzr4r5rGrr r0©r r4©r r5©r rG©r r4©r r5©r rG©r³r4©r³r5©r³rG)rr›rŒrr)rr rrÚtuplesrr r r!Útest_from_productós 
 
÷ r¾c    CsŽdddg}dddg}ddg}d    d
d d d ddddg    }tj||d}tjt||gƒ|d}t ||¡d}tjt|dt d¡W5QRXdS)Nr r r³r4r5rGrr r´rµr¶r·r¸r¹rºr»r¼r0z-Input must be a list / sequence of iterables.r#r)    rrŒr›rXrrr'r(r*)rr rr½rrr,r r r!Útest_from_product_iterator    s&
 
÷  r¿za, b, expected_namesrc    CsVt ||g¡}tdddgddggddddddgddddddgg|d}t ||¡dS)Nrrrr4r5rrrŸ)r4r5Zexpected_namesrrr r r!Útest_from_product_infer_names%sýrÀc    Cs|tdddgdd}tddgdd}tj||gdd    }tdddgddggd
d
ddddgd
dd
dd
dggdd }t ||¡dS) Nrrrr rr4r5r r0rr)rrr›rrrŠr r r!Ú%test_from_product_respects_none_names<sýrÁcCsNt tdƒ¡}ddg}t ||g¡}|jddt ||g¡}t ||¡dS)Nrr4r5F)Úwrite)r8r9r£rr›Zsetflagsrr)r4r5rrr r r!Útest_from_product_readonlyJs  rÃcCsz|}ddg|_t|ƒ}ttddddddgd    d
ƒ}t ||¡t|d d }ttddddddgd    d
d d }t ||¡dS) Nr r )r r.)r r/)r r.)r r/)rr.)rr/Úobject©Údtyper}r)rrrr)r=r˜rrr r r!Útest_create_index_existing_nameUs>
ú÷ÿ  ú÷ ôrÇcCs^tjddgddgddgddggddgd}tjdddd    gddgd
}t |¡}t ||¡dS) Nr4r5ÚL1ÚL2r–)r4r4r†)r5r4)r5r5r0)rDr™rrŒÚ
from_framerr)Údfrrr r r!Útest_from_framesÿ
ÿ
rÌzminimum pyarrow not installed)Úreasonc
Cs–ddl}t tdddgddt ¡ | dtjdg¡¡dœ¡}t     
|¡}t    j tdddgƒ  d¡t ¡ | dtjdg¡¡gdd    gd
}t  ||¡dS) NrrrZInt64rÅgš™™™™™É?r†r4r5r0)ZpyarrowrDr™rZ Float64DtypeZ__from_arrow__r9r8rCrrÊrSZastyperr)ÚparËZ multi_indexedrr r r!Ú)test_from_frame_missing_values_multiIndex‹sþÿ
þûrÏÚ    non_framerBééc    Cs(tjtddt |¡W5QRXdS)NzInput must be a DataFramer#)r'r(r*rrÊ)rÐr r r!Útest_from_frame_error¡s rÓc sêt tddddddddddgtjddddd    d    gd
d d d d dd d gdœ¡}|j ¡}tjtddddddddddgtjddddd    d    gd
d d d d dd d ggdddd    gd}t |¡‰‡fdd„t    ˆj
ƒDƒ}t   |ˆ¡||ksæt ‚dS)NZ19910905rÑrg)rdrirrr4r5rGT)rvr¯ÚyÚz)Údatesr4r5rGrÖr0csi|]\}}|ˆj|j“qSr )rrÆ)rOÚir©r2r r!Ú
<dictcomp>Èsz2test_from_frame_dtype_fidelity.<locals>.<dictcomp>)rDr™r
Z CategoricalÚdtypesÚto_dictrrSrÊÚ    enumeraterrrr)rËZoriginal_dtypesZ expected_miZ    mi_dtypesr rØr!Útest_from_frame_dtype_fidelity²s( üÿ
 ü
ù    
 rÝznames_in,names_out©rÈr¯©rÉrÔr¯rÔcCsPtjddgddgddgddggt ddg¡d}tj||d}|j|ksLt‚dS)Nr4r5rÞrßr–r0)rDr™rrŒrÊrr)Znames_inZ    names_outrËr2r r r!Útest_from_frame_valid_namesÎs  þràznames,expected_error_msg)Z    bad_inputr’z9Length of names must match number of levels in MultiIndexc    Cs\tjddgddgddgddggt ddg¡d}tjt|dtj||dW5QRXdS)Nr4r5rÞrßr–r#r0)rDr™rrŒr'r(r)rÊ)rZexpected_error_msgrËr r r!Útest_from_frame_invalid_namesÛs      þrácCs@tggggggddgd}tjgggddgd}t ||¡dS)Nr4r5rr~)rrSrrr†r r r!Útest_index_equal_empty_iterableìsrâc
CsÈddgdddgg}t|ddddddgddddddggddtjtdd0t|ddddddgddddddggddW5QRXtjtdd0t|ddddddgddddddggddW5QRXdS)Nrrr)rrZ    sortorderz%.* sortorder 2 with lexsort_depth 1.*r#z%.* sortorder 1 with lexsort_depth 0.*)rr'r(r)r&r r r!Útest_raise_invalid_sortorderós$ÿÿÿrãc Cs6tjdddgddd}tddd    d
d }t ||g¡}tjdddgdd}t |jd |¡t |jd |¡t     d¡}t
  ¡}t   ¡}t  |||g|||g¡D]F\}}t |g|gg¡}    t|    jd tjƒsÐt‚t|    jd tjƒs t‚q t  ¡}
t |
g|gg¡}    t|    jd tjƒrt‚t|    jd tjƒs2t‚dS)Nz2013-04-01 9:00z2013-04-02 9:00z2013-04-03 9:00rrj)riz
2010/01/01rÑÚMrg)rdrcrirrÚtoday)rDÚ DatetimeIndexr
rrSrrrr8Z
datetime64rrår    Ú    itertoolsÚproductr›rrr) r^r_r=Z    expected1Zdate1Zdate2Zdate3Úd1Zd2r˜Zdate4r r r!Útest_datetimeindex    s. ÿÿ
 rêcCs¼tjddgddd}tjddgdd    d}t ||g¡}|jddgksHt‚t |jd
|¡t |jd |¡t t    |ƒt    |ƒg¡}|jddgks”t‚t |jd
|¡t |jd |¡dS) Nz2013/01/01 09:00z2013/01/02 09:00Zdt1z
US/Pacific)rriz2014/01/01 09:00z2014/01/02 09:00Zdt2rjrr)
rDrærrSrrrrrr)r˜r—rr r r!Útest_constructor_with_tz)s$ÿÿrëcCsžt ¡}||g}t|ƒ}|jtks&t‚t |g¡}|jd}|jtksJt‚t     |g¡}|jd}|jtksnt‚t 
dd„|Dƒ¡}|jd}|jtksšt‚dS)NrcSsg|]
}|f‘qSr r )rOr¯r r r!rQPsz9test_multiindex_inference_consistency.<locals>.<listcomp>) rrårrÆrÄrrrSrr›rŒ)ÚvZarrr=r2rPr r r!Ú%test_multiindex_inference_consistency>s 
 
 
rícCsJtjdgdggddgd}|j}tddgt ddg¡d}t ||¡dS)    Nrr4r†)rGÚdr0Úint64rÄ)r˜)rrSrÚrrŒrZassert_series_equal)Zpmidxrrr r r!Útest_dtype_representationUs ÿrð)LrrrçÚnumpyr8r'Z pandas.compatrZpandas.core.dtypes.castrZpandasrDrrrr    r
Zpandas._testingZ_testingrr"r-r3r>rFrJrWrYr]ÚmarkZ parametrizerprornrqrzrrˆr‰r‹rrŽrr‘r•ršrœrr¡rxr£r¤r§r¨r¬r²r¾r¿rÀrÁrÃrÇrÌZskipifrÏr9rÓrÝràrárârãrêrërírðr r r r!Ú<module>s   
 &  þþþ÷þ
éþ
(ÿ
   ÿ
 
    *ÿ
 ýùþ
 * 
 
úþ
ÿ
 
 þþ