zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
U
­ý°d7uã@sÐdZddlmZddlZddlZddlZddlmZddlm    Z    m
Z
m Z m Z m Z mZddlmZddlmZmZmZmZdd„Zd    d
„Zej d ejejfejejfejejfejejfg¡d d „ƒZej ddddddddddddddddg¡ej ddd g¡d!d"„ƒƒZ ej d#d$d%d%d&gd&d&gg¡d'd(„ƒZ!Gd)d*„d*ƒZ"ej #d+¡ej d,d-d.d/d0g¡d1d2„ƒƒZ$d3d4„Z%d5d6„Z&d7d8„Z'd9d:„Z(d;d<„Z)ej d=d$ej*g¡d>d?„ƒZ+d@dA„Z,dBdC„Z-GdDdE„dEƒZ.dS)FzX
The tests in this package are to ensure the proper resultant dtypes of
set operations.
é)ÚdatetimeN)Úfind_common_type)ÚCategoricalIndexÚIndexÚ
MultiIndexÚ
RangeIndexÚSeriesÚ    Timestamp)Ú is_bool_dtypeÚis_datetime64tz_dtypeÚis_signed_integer_dtypeÚ pandas_dtypecCs*| ¡}| ¡}| |¡j|jks&t‚dS)N)Ú sort_valuesÚunionÚdtypeÚAssertionError)ÚindexÚidx1Úidx2©rúWd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/indexes/test_setops.pyÚtest_union_same_typessrc     Cs¬|}|}|js,|js,|jjdkr,|jjdksP|jsn|jsn|jjdkrn|jjdkrntjjdtdd}|j |¡t    |j|jgƒ}d}t
|ƒrät
|ƒs”nP|jjdkrº|jjdksàt |jt jƒrà|jjdkrä|jjdksàt |jt jƒsät }t j|j|jfk}t|jƒ}    t|jƒ}
| ¡}| ¡}tj|dd    | |¡} | |¡} W5QRX|rˆ|    sZ|
rˆ| jt  d
¡kspt‚| jt  d
¡ks¨t‚n | j|ks˜t‚| j|ks¨t‚dS) NÚiÚbzGH#44000 True==1F)ÚreasonÚraisesÚstrictÚc)rÚuÚfrz'<' not supported between©ÚmatchÚO)Ú    is_uniquerÚkindÚpytestÚmarkZxfailÚ
ValueErrorÚnodeZ
add_markerrÚlenÚ
isinstanceÚnpÚRuntimeWarningÚuint64r rÚtmÚassert_produces_warningrr) Ú
index_flatZ index_flat2Úrequestrrr&Z common_dtypeÚwarnZ
any_uint64Z idx1_signedZ idx2_signedÚres1Úres2rrrÚtest_union_different_types&slÿþ
ý
üúù
ø    
÷ÿ 
ÿ
ý ü
ù    
÷
ö
 
 
r5zidx_fact1,idx_fact2cCsT|dƒ}|dƒ}| |¡}| |¡}|j|j|jfks:t‚|j|j|jfksPt‚dS)Né
é)rrr)Z    idx_fact1Z    idx_fact2rrr3r4rrrÚ"test_compatible_inconsistent_pairsls 
 
r8zleft, right, expected)Úint64r9r9)r9r-Úobject)r9Úfloat64r;)r-r;r;)r-r-r-)r;r;r;)údatetime64[ns]r9r:)r<r-r:)r<r;r:)údatetime64[ns, CET]r9r:)r=r-r:)r=r;r:)ú    Period[D]r9r:)r>r-r:)r>r;r:Únames)Úfoor@r@)r@ÚbarNcCs~t|ƒ}t|ƒ}tg||dd}tg||dd}| |¡}|j|ksLt‚|j|dks^t‚| |¡}|j|dkszt‚dS)Nr)rÚnameéé)r rrrrrBÚ intersection)ÚleftÚrightÚexpectedr?ÚarÚresultrrrÚtest_union_dtypess
 
rKÚvaluesrCrDécCs8t|ƒ}tddgƒ}| |¡}tdgƒ}t ||¡dS)NrM)rrEr.Úassert_index_equal)rLrIrrJrHrrrÚtest_intersection_duplicates¥s
 
 
rOc@s eZdZej dddg¡ej dddddg¡d    d
„ƒƒZd d „Zej d ¡dd„ƒZ    ej d ¡dd„ƒZ
ej d ¡dd„ƒZ ej ddddddg¡dd„ƒZ ej ddddddg¡dd„ƒZ ej ddddddg¡dd„ƒZej ddddddg¡d d!„ƒZd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*S)+Ú
TestSetOpsÚcasegà?ZxxxÚmethodrErÚ
differenceÚsymmetric_differencec    Cs0d}tjt|dt||ƒ|ƒW5QRXdS)Nz!Input must be Index or array-liker )r%rÚ    TypeErrorÚgetattr)ÚselfrQrRrÚmsgrrrÚtest_set_ops_error_cases±sz#TestSetOps.test_set_ops_error_casesc        CsÄt|tƒrdS|dd…}|dd…}| |¡}t ||¡s@t‚t|jƒrNdS| ¡|     ¡| 
¡g}|D]}| |¡}t ||¡sht‚qht|t ƒrÀd}t j t|d| dddg¡W5QRXdS)NérMú.other must be a MultiIndex or a list of tuplesr rCrD)r*rrEr.Ú equalContentsrr rÚto_numpyÚ    to_seriesÚto_listrr%rrU)    rWrÚfirstÚsecondÚ    intersectÚcasesrQrJrXrrrÚtest_intersection_base»s 
 
 
 
 
z!TestSetOps.test_intersection_baseúEignore:Falling back on a non-pyarrow:pandas.errors.PerformanceWarningc
    Csº|dd…}|dd…}|}| |¡}t ||¡s6t‚t|jƒrDdS| ¡| ¡| ¡g}|D]}| |¡}t ||¡s^t‚q^t    |t
ƒr¶d}    t j t |    d| dddg¡W5QRXdS)NrMrZr[r rCrD)rr.r\rr rr]r^r_r*rr%rrU)
rWrr`raÚ
everythingrrcrQrJrXrrrÚtest_union_baseÔs  
 
 
 
zTestSetOps.test_union_basec
    Csæ|dd…}|dd…}t|ƒr4t|ƒ t|ƒ¡}nt|tƒrDg}n |dd…}| ||¡}t ||¡slt‚| ¡|     ¡| 
¡g}|D] }| ||¡}t ||¡s†t‚q†t|t ƒrâd}    t j t|    d| dddg|¡W5QRXdS)NrDér[r rCrM)r
ÚsetrSr*rr.r\rr]r^r_rr%rrU)
rWÚsortrr`raÚanswerrJrcrQrXrrrÚtest_difference_baseïs"  
 
zTestSetOps.test_difference_basec        Csþt|tƒrdSt|ƒdkrdS|d|dd…ksF|d|dd…krJdS|dd…}|dd…}|ddg}| |¡}t ||¡sˆt‚| ¡| ¡|     ¡g}|D]}| |¡}t ||¡s¢t‚q¢t|t
ƒrúd}t j t |d| dddg¡W5QRXdS)NrDrrCéÿÿÿÿr[r rM)r*rr)rTr.r\rr]r^r_rr%rrU)    rWrr`rarkrJrcrQrXrrrÚtest_symmetric_difference s&
 (   
 
 
z$TestSetOps.test_symmetric_differencezfname, sname, expected_name©ÚArprp©rpÚBN)rpNN©NrrN)NNNc
Cs"|jst d¡|}| ¡ |¡}| ¡ |¡}| |¡}| ¡ |¡}    t ||    ¡| ¡ |¡}| |¡ |¡}| |¡}| ¡ |¡}    t ||    ¡| |¡ |¡}| ¡ |¡}| |¡}| ¡ |¡}    t ||    ¡| |¡ |¡}| |¡ |¡}| |¡}| |¡ |¡}    t ||    ¡dS©Nú-Randomly generated index_flat was not unique.)    r#r%ÚskipÚcopyÚ    set_namesrr.rNÚdrop©
rWr0ÚfnameÚsnameÚ expected_namerr`rarrHrrrÚtest_corner_union)s.
 
 
 
 
zTestSetOps.test_corner_unionc
Cs`|jst d¡|}| ¡ |¡}|dd… |¡}| |¡ ¡}| |¡ ¡}    t ||    ¡dS©NrurC)    r#r%rvrwrxrrr.rNrzrrrÚtest_union_unequalWs 
zTestSetOps.test_union_unequalc
Cs&|jst d¡|}| ¡ |¡}| ¡ |¡}| |¡}| ¡ |¡}    t ||    ¡| ¡ |¡}| |¡ |¡}| |¡}| |¡ |¡}    t ||    ¡| |¡ |¡}| ¡ |¡}| |¡}| |¡ |¡}    t ||    ¡| |¡ |¡}| |¡ |¡}| |¡}| |¡ |¡}    t ||    ¡dSrt)    r#r%rvrwrxrEr.rNry©
rWr0r{r|r}rr`rarbrHrrrÚtest_corner_intersectms. 
 
 
 
 
z TestSetOps.test_corner_intersectc
Csh|jst d¡|}| ¡ |¡}|dd… |¡}| |¡ ¡}|dd… |¡ ¡}    t ||    ¡dSr)    r#r%rvrwrxrErr.rNrrrrÚtest_intersect_unequalšs 
z!TestSetOps.test_intersect_unequalcCs–t|tƒr | tt|jƒƒ¡}n
| d¡}t |¡}| |¡}|j    |j    ksNt
‚| |dd…¡}|j    |j    kspt
‚|dd… |¡}|j    |j    ks’t
‚dS)Nr@r) r*rÚrenameÚlistÚrangeÚnlevelsr+ZasarrayrErBr)rWrÚotherrJrrrÚ.test_intersection_name_retention_with_nameless°s
 
 
 
z9TestSetOps.test_intersection_name_retention_with_namelesscCs8|js
dS|j||d}|dd…}tj||dddS)N©rjrT©Úexact)r#rSr.rN)rWrrjrJrHrrrÚ$test_difference_preserves_type_emptyÃs
 z/TestSetOps.test_difference_preserves_type_emptycsvtˆtƒr‡fdd„|Dƒ}ˆ |d¡‰ˆ |d¡}ˆ |¡sFt‚ˆ |¡}ˆdd… |d¡}t ||¡dS)Ncsg|]}|gˆj‘qSr)r‡)Ú.0Úx©rrrÚ
<listcomp>ÏszDTestSetOps.test_difference_name_retention_equals.<locals>.<listcomp>rrCrD)r*rr„ÚequalsrrSr.rN)rWrr?rˆrJrHrrrÚ%test_difference_name_retention_equalsÍs
 
z0TestSetOps.test_difference_name_retention_equalscCs>|js
dS| |dd…¡}|j||d}tj||dddS)NrrŠTr‹)r#rErSr.rN)rWrrjÚinterZdiffrrrÚ(test_intersection_difference_match_emptyÙs
z3TestSetOps.test_intersection_difference_match_emptyN)Ú__name__Ú
__module__Ú __qualname__r%r&Ú parametrizerYrdÚfilterwarningsrgrlrnr~r€r‚rƒr‰rr“r•rrrrrP¯s~
ÿ ÿ
ÿ
ÿ
ûþ
 
$ûþ
 
ûþ
 
#ûþ
 
 
 rPrerRrErrSrTcCsœ|}| d¡}t|tƒrdnd}t||ƒ||d}t||ƒ||d}tj|||dt||ƒ|dd…|d}t||ƒ|dd…|d}tj|||ddS)NÚcategoryÚequivTrŠr‹rZ)Zastyper*rrVr.rN)r0rjrRrrˆrŒrJrHrrrÚtest_setop_with_categoricalås
rcCsL|jr
dS|}|ddddg}| |¡ | |¡¡s8t‚| |¡jsHt‚dS©NrrCrD)ÚemptyrEr’rr#)rÚidxZidx_non_uniquerrrÚ(test_intersection_duplicates_all_indexesûs r¡cCs”|}tddddg|d}tdddg|d}tddddddg|d}t|tƒr`tddddddgƒ}| |¡}t ||¡|j|dd}t ||¡dS)NrCrDrM©rrhFrŠ©rr*rrr.rN©Z'any_dtype_for_small_pos_integer_indexesrrIrrHrJrrrÚ0test_union_duplicate_index_subsets_of_each_others
 
 r¥cCsh|}tdddg|d}tddg|d}tdddg|d}| |¡}t ||¡| |¡}t ||¡dS)NrCrr¢©rrr.rNr¤rrrÚ1test_union_with_duplicate_index_and_non_monotonics
 
r§cCsRtddddgƒ}tdddgƒ}tdddddddgƒ}|j|dd}t ||¡dS)NrCrDrMÚ1Ú0FrŠr¦)rIrrHrJrrrÚ+test_union_duplicate_index_different_dtypes)s
rªcCsHtdddgƒ}tddddgƒ}| |¡}tddddgƒ}t ||¡dSržr¦)rIrrJrHrrrÚ(test_union_same_value_duplicated_in_both2s
 
r«ÚdupcCsVttjdddgƒ}ttj|ddgƒ}|j|dd}ttj|dddgƒ}t ||¡dS)NrCrDFrŠgð?ç@)rr+Únanrr.rN)r¬rIrrJrHrrrÚtest_union_nan_in_both;s
r¯cCs†|}tdddg|d}tdddg|d}tddddg|d}t|tƒrVtddddgƒ}| |¡}t ||¡| |¡}t ||¡dS)NrCrrDr¢r£r¤rrrÚ<test_union_with_duplicate_index_not_subset_and_non_monotonicEs
 
 
r°cCsttddtjgƒ}|jjjdks"t‚tddgƒ}| |¡}tddtjgtj    d}t
  ||¡| |¡}t
  ||¡dS)NrCrDrr¢) rr+r®Ú
categoriesrr$rrrr;r.rN)Úcir rJrHrrrÚ#test_union_int_categorical_with_nanWs 
 
r³c @s4eZdZdd„Zejjddgdddd„ƒZej d    ed
d d d dgdddfed
d d d dgdddfed
d d d dgƒdfg¡dd„ƒZ    ejjddgddej ddddg¡dd„ƒƒZ
dd„Z ejjddgdddd„ƒZ ej de jeeg¡ejjddgdddd „ƒƒZejjddgddd!d"„ƒZejjddgddej d#d$d%g¡d&d'„ƒƒZd(d)„Zejjddgddd*d+„ƒZejjddgddd,d-„ƒZej d.d/d0g¡d1d2„ƒZej d.d/d0g¡d3d4„ƒZd5d6„Zej d7ed8d9e jgƒed:d;d<gƒfed8d9gƒee jd:d;d<gƒfg¡d=d>„ƒZd?d@„ZdAdB„ZdCS)DÚTestSetOpsUnsortedcCsXtdddƒtdddƒg}t|td}tdgtd}| |¡}tgtd}t ||¡dS)NiÜrDé    ér¢Zaa)rrr:rEr.rN)rWZdt_datesÚindex1Úindex2rJrHrrrÚtest_intersect_str_dateshs  
 z+TestSetOpsUnsorted.test_intersect_str_datesrÚstringT)ZindirectcCsl|dd…}|dd…}|j||d}|dkr>t || ¡¡t ||¡sNt‚|j||d}||ksht‚dS)Nr7r6rŠ)rEr.rNrr\r)rWrrjr`rarbr”rrrÚtest_intersectionrs  z$TestSetOpsUnsorted.test_intersectionzindex2,keeps_namerMrhrZéé©rBrˆFcCsZtdddddgdd}tdddgƒ}| ||¡}|r:d|_|j|jksJt‚t ||¡dS)NrCrDrMrhrZrr¾)rrErBrr.rN)rWr¸Z
keeps_namerjr·rHrJrrrÚ#test_intersection_name_preservations     z6TestSetOpsUnsorted.test_intersection_name_preservationz$first_name,second_name,expected_namerorqrsc    CsD|dd…}|dd…}||_||_|j||d}|j|ks@t‚dS©NrZr7r6rŠ)rBrEr)    rWrZ
first_nameÚ second_namer}rjr`rarbrrrÚ$test_intersection_name_preservation2’s   z7TestSetOpsUnsorted.test_intersection_name_preservation2c
CsÔtddgdd}tddgdd}tdd    gd
d}|j|j||d |d }|j||d j||d }t ||¡tddgd d}tgd d}tgdd}    |j|j|    |d |d }|j||d j|    |d }t ||¡dS)NrCrDÚi1r¾rZr¼Úi2rMrhÚi3rŠÚj1Új2Új3r¦)
rWrjrÃrÄrÅrrHrÆrÇrÈrrrÚtest_chained_union¡s   z%TestSetOpsUnsorted.test_chained_unioncCs^|dd…}|dd…}|dd…}|j||d}|dkrJt || ¡¡t ||¡sZt‚dSrÀ)rr.rNrr\r)rWrrjr`rarfrrrrÚ
test_union±s   zTestSetOpsUnsorted.test_unionÚklassc    Csh|dd…}|dd…}|dd…}||jƒ}|j||d}|dkrTt || ¡¡t ||¡sdt‚dSrÀ)rLrr.rNrr\r)    rWrrËrjr`rarfrQrJrrrÚtest_union_from_iterables¼s   
z,TestSetOpsUnsorted.test_union_from_iterablescCst|dd…}|j||d}||k| ks,t‚|jg|d}||k| ksLt‚tgƒj||d}||k| kspt‚dS)NrZr7rŠ)rrr)rWrrjr`rrrrÚtest_union_identityÊs z&TestSetOpsUnsorted.test_union_identityzsecond_name,expected)NN)rBrBc    Csx|dd…}|dd…}|dd…}d|_||_|j||d}t ||¡sNt‚|dkrf|jdkstt‚n|j|kstt‚dS)NrZr7r6rBrŠ)rBrSr.r\r)    rWrrÁrHrjr`rarkrJrrrÚ!test_difference_name_preservationÚs   z4TestSetOpsUnsorted.test_difference_name_preservationcCs.|dd…}d|_| g|¡}t ||¡dS)NrZr7rB)rBrSr.rN©rWrrjr`rJrrrÚtest_difference_empty_argìs  z,TestSetOpsUnsorted.test_difference_empty_argcCsB|dd…}d|_| ||¡}t|ƒdks.t‚|j|jks>t‚dS)NrZr7rBr)rBrSr)rrÏrrrÚtest_difference_identityós
  z+TestSetOpsUnsorted.test_difference_identitycCsP|dd…}|dd…}| ||¡}|dd…}|dkr@| ¡}t ||¡dS)NrZr7r6)rSrr.rN)rWrrjr`rarJrHrrrÚtest_difference_sortüs    z'TestSetOpsUnsorted.test_difference_sortÚopnamerSrTc    Cs®tdtdƒdgƒ}tdtdƒdgƒ}t ||¡}t t¡||ƒ}W5QRXtdtdƒdtdƒgƒ}|dkrz|dd…}t ||¡tj||dd}||ƒ}t ||¡dS)    NrMÚ2000rCrDÚ1999rSFrŠ)rr    ÚoperatorÚ methodcallerr.r/r,rN)rWrÓrIrÚoprJrHrrrÚtest_difference_incomparable    s    z/TestSetOpsUnsorted.test_difference_incomparablec    Cs^tdtdƒdgƒ}tdtdƒdgƒ}tj||dd}d}tjt|d    ||ƒW5QRXdS)
NrMrÔrCrDrÕTrŠz<'<' not supported between instances of 'Timestamp' and 'int'r )rr    rÖr×r%rrU)rWrÓrIrrØrXrrrÚ!test_difference_incomparable_trues z4TestSetOpsUnsorted.test_difference_incomparable_truecCsxt tdddgdddgƒ¡}t ddg¡}|j||d    }t d
d dg¡}|dkrX| ¡}t ||¡t ||¡stt‚dS) Nr@rAÚbazrCrDrM)r@rC)rArMrŠ)rArD)rÛrM)    rÚ from_tuplesÚziprTrr.rNr\r)rWrjr·r¸rJrHrrrÚtest_symmetric_difference_mi&s z/TestSetOpsUnsorted.test_symmetric_difference_mizindex2,expectedrrCr­g@gcCs@tdtjddgƒ}|j||d}|dkr0| ¡}t ||¡dS)NrCrDrMrŠ)rr+r®rTrr.rN)rWr¸rHrjr·rJrrrÚ!test_symmetric_difference_missing0s
 
z4TestSetOpsUnsorted.test_symmetric_difference_missingcCstddddgdd}t ddddg¡}tddgƒ}|j||d}t ||¡sPt‚|jdks^t‚|j|d    |d
}t ||¡s~t‚|jd    ksŒt‚dS) NrCrDrMrhr·r¾rZrŠÚnew_name)Z result_namerj)rr+ÚarrayrTr.r\rrB)rWrjr·r¸rHrJrrrÚ#test_symmetric_difference_non_indexAs z6TestSetOpsUnsorted.test_symmetric_difference_non_indexcCsTtdddg|d}tdddg|d}| |¡}tdddddg|d}t ||¡dS)NrCrDrMr¢rhrZr¦)rWZany_numeric_ea_and_arrow_dtyper rrJrHrrrÚtest_union_ea_dtypesMs
 
z'TestSetOpsUnsorted.test_union_ea_dtypesN)r–r—r˜r¹r%r&r™r»rr¿rÂrÉrÊr+rárr…rÌrÍrÎrÐrÑrÒrÙrÚrÞr®rßrârãrrrrr´es^
 
ýþ
þ
 
 
 
 
 
 
 
    
þþ
 
 r´)/Ú__doc__rrÖÚnumpyr+r%Zpandas.core.dtypes.castrZpandasrrrrrr    Zpandas._testingZ_testingr.Zpandas.api.typesr
r r r rr5r&r™Z makeIntIndexZmakeRangeIndexZmakeFloatIndexZ makeUIntIndexr8rKrOrPršrr¡r¥r§rªr«r®r¯r°r³r´rrrrÚ<module>s~    F
 
 
 
üþ    
ñþ 
    8ÿ
ÿ