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
U
­ý°dh ã@sæddlZddlZddlmZmZmZmZmZm    Z    ddl
m Z ej  dedddgƒedgƒeddgƒg¡dd„ƒZd    d
„Zd d „Zd d„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zej  dddg¡dd „ƒZd!d"„ZdS)#éN)Ú    DataFrameÚIndexÚIntervalÚ
MultiIndexÚSeriesÚ StringDtypeÚotherÚthreeÚoneÚtwoc sæ|j||ddd\}}}|j|jd|d‰|jd |jd¡sFt‚|jd ˆ¡sZt‚tj‡fdd„|Dƒtd    }|j|}t     |j|¡|d
krâ|j||ddd\}}    }
| |¡s¼t‚t     ||
¡t     ||    ¡t     |j|¡dS) NÚsecondT)ÚhowÚlevelÚreturn_indexersé©r rcsg|]}|dˆk‘qS)r©)Ú.0Úx©Z    exp_levelrú[d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/indexes/multi/test_join.pyÚ
<listcomp>sz#test_join_level.<locals>.<listcomp>©Zdtype)ÚouterÚinner)
ÚjoinÚlevelsÚequalsÚAssertionErrorÚnpÚarrayÚboolÚvaluesÚtmÚassert_numpy_array_equal) ÚidxrÚ    join_typeZ
join_indexÚlidxÚridxÚmaskZ
exp_valuesZ join_index2Zridx2Zlidx2rrrÚtest_join_levels.ÿ 
ÿ   r*c    CsVtdddgƒ}|j|dd}t|tƒs*t‚tjtdd|j|ddW5QRXdS)    Nr    r
r r )rzJoin.*MultiIndex.*ambiguous)Úmatchr)rrÚ
isinstancerrÚpytestZraisesÚ    TypeError)r%ÚindexÚresultrrrÚtest_join_level_corner_case+s
r1cCs|j||d}t ||¡dS©Nr)rr#Úassert_index_equal©r%r&ZjoinedrrrÚtest_join_self5sr5cCs´tjt d¡t d¡gddgd}tdddgdd}|j|d    d
d \}}}tjt d¡ddggddgd}tjdddd d dddgtjd}tjddddddddgtjd}t     ||¡t 
||¡t 
||¡|j|d    d
d \}}}t     ||¡t 
||¡t 
||¡|j|dd
d \}}}tjddddddddddddddddgtjd}t     ||¡|dksht ‚t 
||¡|j|dd
d \}}}t     ||¡|dks¤t ‚t 
||¡dS)NéÚaÚb©Únamesréé)ÚnamerT)r réé    é
é érrÚleftéÿÿÿÿÚright) rÚ from_productrZarangerrr Úintpr#r3r$r)Úmidxr%Zjidxr'r(Zexp_idxZexp_lidxÚexp_ridxrrrÚtest_join_multi:s2"         "ÿ   rJcCs(|jr$|j||d}||k ¡s$t‚dSr2)Z    is_uniquerÚallrr4rrrÚtest_join_self_unique\srLcCstjddgddggddgd}tjddgddggddgd}|j|dd    \}}}tjd
d
d
d
gtjd }t ||¡|dks€t‚t     ||¡dS) Nrr;ér6r7r8r9T©rrDr)
rrFrrr rGr#r3rr$)Úmidx1Úmidx2Zjoin_idxr'r(rIrrrÚtest_join_multi_wrong_orderbs  rQcCsbtjddgddgddggddd    gd
}tjddgddggddgd
}|j|d d }t ||¡dS) Nrr;rMr6r<r>r7r8Úcr9FrN)rrFrr#r3)rOrPr0rrrÚtest_join_multi_return_indexersrs&rSc
Cs,tjdtddƒfdtddƒfdtddƒfdtddƒfdtddƒfdtddƒfgdd    gd
}tjdtddƒfdtddƒfdtddƒfdtddƒfdtddƒfdtddƒfgdd    gd
}tjdtddƒfdtddƒfdtddƒfdtddƒfdtddƒfdtddƒfgdd    gd
}|j|d d }t ||¡dS) Nrgçð?ç@g@r;g@ÚnumÚintervalr9rr)rÚ from_tuplesrrr#r3)Zidx_1Zidx_2Úexpectedr0rrrÚ$test_join_overlapping_interval_level|s@      ú÷       ú÷       ú÷ rZcCs¸tjtdddgddtdddgddgddgd}tjtdgddtdgddgdd    gd}|j|d
d }tjtddgddtddgddtddgddgddd    gd}t ||¡dS) NrrMZInt64rr;r7r8r9rRrr)rÚ from_arraysrrr#r3©rHrPr0rYrrrÚtest_join_midx_ea¦s""þÿýúr]cCsÆtjtdddgtƒdtdddgtƒdgddgd}tjtdgtƒdtdgtƒdgddgd}|j|dd}tjtddgtƒdtddgtƒdtddgtƒdgdddgd}t ||¡dS)Nr7rRrr8r9rr)rr[rrrr#r3r\rrrÚtest_join_midx_string»s&þûþýúr^cCs¨tdddgitjdgddggddgd    d
}td d d gitjdgtjdggddgd    d
}| |¡}tddgtjd gdœtjdgddggddgd    d
}t ||¡dS)NÚcol1gš™™™™™ñ?g333333ó?ÚArTrUZid1Zid2r9)Údatar/Úcol2gÍÌÌÌÌÌ@gš™™™™™@)r_rb)    rrrFrÚNaNrÚnanr#Zassert_frame_equal)Zdf1Zdf2r0rYrrrÚtest_join_multi_with_nanÔs
þ
þ
þreÚvalr<cCsˆt tddg|dddgg¡}t td||g|ddddgg¡}|j|dd}t t||ddg|dddddgg¡ ¡}t ||¡dS)Nrr;rrMr6rr)rr[rrZ sort_valuesr#r3)Úany_numeric_ea_dtyperfrHrPr0rYrrrÚtest_join_dtypesæsÿÿrhcCs–t tddg|dtjtjgg¡}t tdddg|dtjtjtjgg¡}|j|dd}t tddddg|dtjtjtjtjgg¡}t ||¡dS)Nrr;rrrr)rr[rrrdrr#r3)rgrHrPr0rYrrrÚtest_join_dtypes_all_nanôsÿ ÿþÿri)Únumpyrr-ZpandasrrrrrrZpandas._testingZ_testingr#ÚmarkZ parametrizer*r1r5rJrLrQrSrZr]r^rerhrirrrrÚ<module>s*   ÿ
 
"
*