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
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
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
U
­ý°d¬€ã@s ddlmZmZmZddlZddlZddlZddlmZm    Z    ddl
m Z ddl Z ddl mZmZmZmZmZmZmZmZmZmZmZddlmZddlm ZddlmZddl m!Z!m"Z"dÃd
d „Z#d d „Z$dd„Z%ej&e$ƒdd„ddd„ƒZ'ej&e$ƒdd„ddd„ƒZ(ej&e%ƒdd„ddd„ƒZ)ej&dd„ƒZ*Gdd„dƒZ+dd „Z,Gd!d"„d"ƒZ-ej&d#d$„ƒZ.ej&d%d&„ƒZ/Gd'd(„d(ƒZ0ej&d)d*„ƒZ1ej&d+d,„ƒZ2Gd-d.„d.ƒZ3ej4j5d/d0d1„ej6Dƒed2d3gd2d3gd4d5edd6d4d7ed8d9gd4d:gd;d„d<d=d>„ƒZ7ej4 5d?d@dAgdddBdBd3fdCdd@dAgddBdDd3fddd@dAgdDdBd3fd@dAgdddBdBdfdEdd@dAgddBdDdfddd@dAgdDdBdfg¡dFdG„ƒZ8dHdI„Z9ej4 5dJdddKdLidMdNgfdddKdOiddNgfdddKdPidQdRgfdddKdSdTgidQdRgfdUddKdVidUdgfdWdWdKdXidYdWgfdZdZdKdVidZd[gfdUdUdKdXid\dUgfdUdZdKdXidUdZgfdUdUdKd]idUd\gfdddKd^id_dgfdUdUid\d`gfddidQdRgfg ¡dadb„ƒZ:ej4 5dcd&edddedfgdgdhej;gdidjdkgdlœƒfd@edddedmdfgdgdhdnej;gdidjej;dkgdlœƒfg¡dodp„ƒZ<ej4 5dqdrdsdtg¡dudv„ƒZ=ej4 5dKd$d&hdddwœg¡dxdy„ƒZ>ej4 5dzd{dUdUe?dUƒd|fg¡d}d~„ƒZ@ej4 5dd€dg¡ej4 5d‚dDdBg¡dƒd„„ƒƒZAd…d†„ZBd‡dˆ„ZCd‰dŠ„ZDd‹dŒ„ZEej4 5ddŽdg¡dd‘„ƒZFd’d“„ZGej4 5d”d•d–g¡ej4 5d—dUdDd˜œd™dšgfdUdDd›œdœdgfg¡dždŸ„ƒƒZHej4 5d”d•d–g¡ej4 5d—d™dUidœdgfdœdUid™dšgfg¡d d¡„ƒƒZIej4 5d”d•d–g¡ej4 5d¢ddDidšdDig¡d£d¤„ƒƒZJd¥d¦„ZKd§d¨„ZLd©dª„ZMd«d¬„ZNd­d®„ZOd¯d°„ZPd±d²„ZQd³d´„ZRej4 5dµdd¶g¡d·d¸„ƒZSd¹dº„ZTd»d¼„ZUd½d¾„ZVej4 5dµd¿dÀg¡dÁd„ƒZWdS)Äé)ÚdateÚdatetimeÚ    timedeltaN)Úis_categorical_dtypeÚis_object_dtype)ÚCategoricalDtype) Ú CategoricalÚCategoricalIndexÚ    DataFrameÚ DatetimeIndexÚIndexÚ IntervalIndexÚ
MultiIndexÚ PeriodIndexÚ
RangeIndexÚSeriesÚTimedeltaIndex)Úconcat)Ú
MergeErrorÚmergeéé2cCs`tt|ƒƒ}t t |||¡¡}t|ƒ|krPt t|ƒ|d|t|ƒ…¡}tj |¡|S©N)ÚlistÚrangeÚnpZasarrayÚtileÚlenÚrandomÚshuffle)ÚngroupsÚnZ unique_groupsÚarr©r#ú\d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/reshape/merge/test_merge.pyÚ get_test_data(s   " r%c CsTtdgddtdgddtdgƒtdgƒtdgƒtt d¡gƒttjdd    d
gƒgS) NéÚint64©ÚdtypeÚInt64g®Gáz®ó?ÚfooTú
2018-01-01ú
US/Eastern©Útz)rÚpdÚ    Timestampr#r#r#r$Ú
get_series3s  ùr2cCs8ttjgddttjgddttjgddttjgƒgS)Nr*r(ÚfloatÚobject)rrÚnanr0ÚNaTr#r#r#r$Ú get_series_na?s
 
ür7cCs|jjSr©r)Úname©Úxr#r#r$Ú<lambda>Hór<)ÚparamsÚidscCs|jS)zV
    A parametrized fixture returning a variety of Series of different
    dtypes
    ©Úparam©Úrequestr#r#r$Úseries_of_dtypeHsrDcCs|jjSrr8r:r#r#r$r<Qr=cCs|jS)zk
    A duplicate of the series_of_dtype fixture, so that it can be used
    twice by a single function
    r@rBr#r#r$Úseries_of_dtype2QsrEcCs|jjSrr8r:r#r#r$r<Zr=cCs|jS)zU
    A parametrized fixture returning a variety of Series with all NA
    values
    r@rBr#r#r$Úseries_of_dtype_all_naZsrFcCsRtddgddgddgdœƒ}tddddd    gddddd    gdddddgd
œƒ}||fS) Nrr&éÚaÚb)Úcol1Ú col_conflictÚcol_leftééé)rJrKÚ    col_right©r
)Údf1Údf2r#r#r$Údfs_for_indicatorcs   ýÿrTc@sšeZdZejdd„ƒZejdd„ƒZejdd„ƒZejdd„ƒZd    d
„Z    d d „Z
d d„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zej d/d0d0d1œd0d2d3œd4d0d5œd4d2d6œg¡d7d8„ƒZd9d:„Zd;d<„Z d=d>„Z!d?d@„Z"dAdB„Z#ej dCdDdEdEdFdEdEgfd0dFdEdEdEdEgfg¡ej dGdHdIg¡dJdK„ƒƒZ$dLdM„Z%dNdO„Z&dPdQ„Z'dRdS„Z(dTdU„Z)ej dVdWdXdYdZd[d\d]g¡d^d_„ƒZ*ej dVdWdXdYdZd[d\d]g¡d`da„ƒZ+dbdc„Z,ddde„Z-dfdg„Z.dhdi„Z/djdk„Z0dldm„Z1dndo„Z2dpdq„Z3drds„Z4dtdu„Z5dvdw„Z6dxdy„Z7dzd{„Z8d|d}„Z9d~d„Z:ej dGdId€g¡ej de;dEd‚dƒgƒe;dEd‚dƒd„d„d„gƒfe<d…d†d‡gƒe<d…d†d‡e=j>e=j>e=j>gƒffdˆd‰„e?j@DƒeA BdŠd‹dŒg¡eA BdŠd‹dŒeCjDeCjDeCjDg¡feEd…ddŽgdWdeEd…ddŽe=j>e=j>e=j>gdWdfeFdd‘d’gƒeFdd‘d’e=j>e=j>e=j>gƒff•¡d“d”„ƒƒZGd•d–„ZHej dGdHdIg¡d—d˜„ƒZId™dš„ZJd›dœ„ZKd„S)Ú    TestMergecCs:ttƒtƒtj d¡tj d¡dœƒ}||ddk}|S)Nr)Úkey1Úkey2Údata1Údata2rWr&©r
r%rrÚrandn)ÚselfÚdfr#r#r$r]qs
 
üÿ
z TestMerge.dfcCs&ttddtdddtj d¡dœƒS)Né
)r!rN)r r!)rVrWÚvaluerZ©r\r#r#r$rS€s 
 
ýÿz TestMerge.df2cCs$tdddddddgtj d¡dœƒS)NrHrIÚcÚdÚeé©ÚkeyÚv1©r
rrr[r`r#r#r$ÚleftŠsÿzTestMerge.leftcCs tdtj d¡iddddgdS)NÚv2rNrbrIrarH©Úindexrhr`r#r#r$ÚrightszTestMerge.rightcCsPtƒ}tdddgiddgdd}t||ddd}tdgidd    }t ||¡dS)
NrHr&rGrr')rlr)T©Ú
left_indexÚ right_indexr(©r
rÚtmÚassert_frame_equal)r\Údf_emptyZdf_aÚresultÚexpectedr#r#r$Útest_merge_inner_join_empty”s
z%TestMerge.test_merge_inner_join_emptycCs,t||ƒ}t||ddgd}t ||¡dS)NrVrW©Úon©rrrrs)r\r]rSÚjoinedÚexpr#r#r$Útest_merge_commonœs
zTestMerge.test_merge_commoncCsZtddddgddddgddddgddddgdœƒ}| t¡}|}t||ƒ}t ||¡dS)Nr&rrGrM)rr&rGrM)r
Úastyper3rrrrs©r\rirmrvrur#r#r$Útest_merge_non_string_columns¡s,ÿ
 
z'TestMerge.test_merge_non_string_columnscCsF| d¡}| d¡}t||dd}t||dd d¡}t ||¡dS)NrVrx)Ú    set_indexrrrrs)r\r]rSrirmrurvr#r#r$Útest_merge_index_as_on_arg­s
 
 
z$TestMerge.test_merge_index_as_on_argcCsÐtdddddddgtj d¡dœƒ}tdtj d    ¡iddddgd
}t||d d d dd}t||d d ddd}t ||jdd…|jf¡t||d d d d d}t||d d dd d}t ||jdd…|jf¡dS)NrHrIrarbrcrdrerjrNrkrfTriF)Úleft_onrpÚhowÚsortrm)Úright_onror„r…)    r
rrr[rrrrsÚlocÚcolumns)r\rirmZmerged1Úmerged2r#r#r$Ú(test_merge_index_singlekey_right_vs_left¶sLÿ ÿÿÿÿz2TestMerge.test_merge_index_singlekey_right_vs_leftcCsÀtdddddddgtj d¡dœƒ}tdtj d    ¡iddddgd
}t||d d d d}|j|d dj|j}t     ||¡t||d d d d}|j|d dj|j}t     ||jdd…|j
f¡dS)NrHrIrarbrcrdrerjrNrkrfTÚinner©rƒrpr„rx)r†ror„) r
rrr[rÚjoinr‡rlrrrsrˆ©r\rirmrurvr#r#r$Ú test_merge_index_singlekey_innerÌsÿ  z*TestMerge.test_merge_index_singlekey_innerc    CsÊd}tjtjj|dt||ddW5QRXd}tjtjj|dt||ddW5QRXd}tjtjj|dt||ddd    W5QRXd
}tjt|dt||d gd d gd W5QRXdS)Nz&Must pass right_on or right_index=True©ÚmatchT)roz$Must pass left_on or left_index=True)rpzRCan only pass argument "on" OR "left_on" and "right_on", not a combination of bothrf)rƒryz)len\(right_on\) must equal len\(left_on\)rVrW©rƒr†)ÚpytestÚraisesr0ÚerrorsrrÚ
ValueError)r\r]rSrirmÚmsgr#r#r$Útest_merge_misspecifiedÛsÿz!TestMerge.test_merge_misspecifiedc    Cs d}tjt|dt||ddddgdW5QRXd}tjt|dt||dddgddW5QRXtjt|d t||dddgddgdW5QRXdS)    Nz>right_index parameter must be of type bool, not <class 'list'>rriFrVrW©r„rorpz=left_index parameter must be of type bool, not <class 'list'>©r“r”r–r)r\r]rSr—r#r#r$Ú&test_index_and_on_parameters_confusionîs4ûûûz0TestMerge.test_index_and_on_parameters_confusioncCsNt||dd}|d ¡d ¡}t|ƒ|ks2t‚d|ks>t‚d|ksJt‚dS)NrfrxrGZv1_xZv1_y)rZ value_countsÚsumrÚAssertionError)r\riÚmergedZexp_lenr#r#r$Útest_merge_overlap
s
 zTestMerge.test_merge_overlapcCstddddgddddgdœƒ}tddd    dgd
d d d gdœƒ}|j|ddddd}tddddddtjgdd}t |d|¡tdtjddddd    gdd}t |d|¡tddddddtjgdd}t |d|¡td tjd
d d
d d gdd}t |d|¡dS)Nr+ÚbarZbazr&rGrMrN)Úlkeyr_ZquxrOérdr)Úrkeyr_r¡r£ÚouterT)rƒr†r„r…©r9Úvalue_xÚvalue_y)r
rrrr5rrÚassert_series_equal)r\rirmržr|r#r#r$Ú%test_merge_different_column_key_namess"ÿz/TestMerge.test_merge_different_column_key_namescCsztdddœtdƒd}tdddœtdƒd}t||d    d    d    d
}d |d <|d dk ¡sZt‚d |d<|ddk ¡svt‚dS)Nrr&©rHrIr^rkr+r ©rarbT©rorpÚcopyr¢rHZpeekaboorb)r
rrÚallr)r\rirmržr#r#r$Útest_merge_copy%szTestMerge.test_merge_copycCsztdddœtdƒd}tdddœtdƒd}t||d    d    d
d }t |d j|d j¡sZt‚t |d j|d j¡svt‚dS)Nrr&rªr^rkr+r r«TFr¬rHrb)r
rrrZ shares_memoryZ_valuesr)r\Úusing_array_managerrirmržr#r#r$Útest_merge_nocopy1s
zTestMerge.test_merge_nocopyc CsÄtdddddgttdƒƒdœddgd}tddddd    dgttd
ƒƒd œƒ}t||dd d }tdddddddd    dg    t ddddddd    tjtjg    ¡dddddddd    dg    dœdddgd}t ||¡dS)Nr&rGrMrO©rfr_r_rf©rˆrNr¢)rfÚrvaluer¤©ryr„r)rfr_r´r´)    r
rrrrÚarrayr5rrrs)r\rirmr{rvr#r#r$Ú"test_intelligently_handle_join_key:sÿ"ýúz,TestMerge.test_intelligently_handle_join_keycCsætdgdgdœƒ}tdgdgdœƒ}t||dd}|djd    ksDt‚td
gdgdœƒ}td gd gdœƒ}t||dd}|djd ksˆt‚tddgiƒ}tddgiƒ}t dg¡}t dg¡}t||||dd}|djtjksât‚dS)Nr&r^rerGér¤©r„rfr'TFrÚboolÚval©rƒr†r„Úkey_0)r
rr)rrr¶Úint_)r\rRrSr]r¡r£r#r#r$Útest_merge_join_key_dtype_castMs  z(TestMerge.test_merge_join_key_dtype_castc    
Cs¾tdddddgt d¡dœddgdd    }td
t d ¡idd }tjddddd dgdd }t||d|dd}t|||ddd}t |d|d¡|d ¡ ¡s¤t    ‚|d ¡ ¡s¸t    ‚tdt d¡idgd}td
t d ¡iƒ}t dddddg¡}t ddddd dg¡}t||||dd}t
dddddddd dg    tj dd}t |d|¡tdt d¡iƒ}td
t d ¡iƒ}tjddddddgtj d }t||d|dd}t |dt
|dd¡dS)Nr&rGrMrOr²r_rfr'©rˆr)r´r¢r(rNr¤r¼r³r½r8rT)ror†r„r¥) r
rÚaranger¶rrrr¨Znotnar®rrr¾r')    r\rirmrfržr‰r¡r£rvr#r#r$Útest_handle_join_key_pass_arrayds0ý"z)TestMerge.test_handle_join_key_pass_arrayc    Csxt ¡}tddgi|gd}tdddgi||gd}dd›dd›d    d
›d d
›}tjt|d t||ƒW5QRXdS) Nr;rHrkÚyrIraz>No common columns to perform merge on. Merge options: left_on=z , right_on=z , left_index=Fz, right_index=r)rÚnowr
r“r”rr)r\ÚdtrRrSr—r#r#r$Ú&test_no_overlap_more_informative_error„sÿz0TestMerge.test_no_overlap_more_informative_errorcCsòtdddƒ}tdddƒ}tdddƒ}tdddƒ}tddgi|gd    }td
d d gi||gd    }t||ƒtddd d gi|||gd    }td
d dddddgi||||||gd    }t||ƒtddd gi||gd    }td
d dgi||gd    }t||ƒdS)NéÜrOr&rGrMrNr;rHrkrÃrIraÚqrbrcÚfÚgÚh©rr
Ú _check_merge)r\rÅÚdt2Údt3Zdt4rRrSr#r#r$Útest_merge_non_unique_indexes“s     
ÿ
z'TestMerge.test_merge_non_unique_indexescCsvtdddƒ}tdddƒ}tdddƒ}tdddd    d
gi||||gd }td d ddddgi|||||gd }t||ƒdS)NrÇrOr&rGrMr;rHrIrarbrkrÃrcrÉrÊz hÚirÌ)r\rÅrÎrÏrRrSr#r#r$Ú(test_merge_non_unique_index_many_to_many¨s     ÿz2TestMerge.test_merge_non_unique_index_many_to_manycCsZtdgdgdœƒ}tdgiƒ}t||ddd}t ||¡t||ddd}t ||¡dS)Nr&rGr²rfrirµrmrq)r\rirmrur#r#r$Útest_left_merge_empty_dataframe²s   z)TestMerge.test_left_merge_empty_dataframeÚkwargTrnr;©ror†rH©rƒrpr’cCs^tdddgd}tdddgd}tddddddgtd}t||fd    |i|—Ž}t ||¡dS)
NrHrIrar³r;rÃÚzrÀr„)r
r4rrrrs)r\Ú    join_typerÔrirmÚexp_inrur#r#r$Ú!test_merge_left_empty_right_empty¼s
z+TestMerge.test_merge_left_empty_right_emptyc    sftdddgd‰tdddgdd    d
gd d d ggdddgd‰ttjtjgdtdtjtjgdtdtjtjgdtdddd gdd    d gdd
d gdœddddddgd}|dd…}‡‡fdd„}‡‡fdd„}dddœdddœfD]}|||ƒ|||ƒqädddœ}|||ƒdddg|d<|||ƒdddœ}|||ƒtjtjgdtd|d<|||ƒdS)NrHrIrar³r&rGrMrNrOr¢rdré    r;rÃr×r(©rHrIrar;rÃr×rcsHtˆˆfddi|—Ž}t ||¡tˆˆfddi|—Ž}t ||¡dS)Nr„r‹rirz©r|rÔru©rirmr#r$Úcheck1ás z>TestMerge.test_merge_left_empty_right_notempty.<locals>.check1csHtˆˆfddi|—Ž}t ||¡tˆˆfddi|—Ž}t ||¡dS)Nr„rmr¤rzrÝrÞr#r$Úcheck2çs z>TestMerge.test_merge_left_empty_right_notempty.<locals>.check2TrnrÕrÖr’)r
rr¶r5r4)r\Úexp_outrÙrßràrÔr#rÞr$Ú$test_merge_left_empty_right_notemptyÏs8*ú÷ þ
 
 
 
 
 
z.TestMerge.test_merge_left_empty_right_notemptyc
sêtdddgdddgddd    ggd
d d gd ‰tdddgd ‰tdddgdddgddd    gtjtjgdtdtjtjgdtdtjtjgdtddœd
d d dddgd ‰ˆdd…‰ˆj t¡ˆ_‡‡fdd„‰‡‡‡‡‡‡fdd„‰dS)Nr&rGrMrNrOr¢rdrrÛrHrIrar³r;rÃr×r(rÜrcsHtˆˆfddi|—Ž}t ||¡tˆˆfddi|—Ž}t ||¡dS)Nr„r‹rmrzrÝrÞr#r$rßs z>TestMerge.test_merge_left_notempty_right_empty.<locals>.check1cs†tˆˆfddi|—Ž}t ||¡tˆˆfddi|—Ž}t ||¡dddœdddœddd    œddd
œfD]}ˆˆ|ƒˆˆ|ƒqhdS) Nr„rir¤Trnr;rÕrHrÖr’rzrÝ©rßràrÙrárirmr#r$ràs  ü
z>TestMerge.test_merge_left_notempty_right_empty.<locals>.check2)r
rr¶r5r4rlr~r`r#rãr$Ú$test_merge_left_notempty_right_emptyþs *ú÷ z.TestMerge.test_merge_left_notempty_right_emptycCs~t||dœddgd}|dd…}tt|jddt|jddt|jdddœddd    gd}|j|dd
}t ||¡dS) Nr²rfr_r³rr()r¦rfr§r¦r§rx)r
rÚdtypesrrrrs)r\rDrEr]rtrvÚactualr#r#r$Útest_merge_empty_frame(sþ ýúz TestMerge.test_merge_empty_framecCsdt||dœddgd}t||dœddgd}t|||dœdddgd}|j|dd}t ||¡dS)    Nr²rfr_r³©rfr¦r§r¦r§rxrq)r\rDrFZdf_leftZdf_rightrvrær#r#r$Útest_merge_all_na_column:s"þþýúz"TestMerge.test_merge_all_na_columncCstjjddddtjjddddtdddƒtddd    ƒtd
dd ƒtdddƒtddd    ƒtdd    d ƒtdd d    ƒtd d dƒtd
dd ƒtddd ƒg
dœ}t |¡}|j ¡}t |¡}t |tj d¡dœ¡}|j    |ddd}t    ||ddd}t
  ||¡|j ¡|j ¡k  ¡s t ‚dS)Nrr^©ÚsizerÇr&é iÛrGrNiÚrMiØrO)Zvar1Zvar2Úvar3rd)ríZvar8ríF©ryr…)rrÚrandintrr
Ú    from_dictríÚuniquer…rrrrsr®r)r\rbr]ríÚnewrur|r#r#r$Útest_merge_nosortOs,
 
 
 
 
 
 
 
 
 
öý
 
 
 zTestMerge.test_merge_nosort)r…ÚvaluesFr&rr„rirmcCsBtddddgiƒ}|j|d||d}t|dgd}t ||¡dS)NrHr&r)ryr„r…r³rq)r\r…rôr„r]rurvr#r#r$Ú test_merge_same_order_left_rightmsz*TestMerge.test_merge_same_order_left_rightcCs˜tddgddgdœƒ}tdgdgdœƒ}|j|ddd}tddd    œddd    œdtjd    œdtjd    œddd    œd
œƒ d¡ ¡dd d d g}tj||dddS)Nrr&©Úi1Úi2©r÷Úi3r÷Ú_)ryÚrsuffixç©rr&)r÷røÚi1_rúNrørÿrúF)Z check_dtype)r
rrr5rÚ reset_indexrrrs©r\rRrSrurvr#r#r$Útest_merge_nan_rightys"
 
ûÿ    ÷
 
öÿ zTestMerge.test_merge_nan_rightcCs‚tddgddgdœƒ}tdgdgdœƒ}|j|dd    d
}tddd œd tjd œddd œdtjd œd œƒd    dddg}t ||¡dS)Nrr&gà?çø?rögffffffæ?rùrûr÷)rüryrþrý)r÷rÿrørúrørÿrú)r
rrr5rrrsrr#r#r$Útest_merge_nan_right2Œs
 
üÿ
ùzTestMerge.test_merge_nan_right2cs<G‡fdd„dtƒ‰ˆ|ƒ}|j|dd}t|ˆƒs8t‚dS)NcseZdZe‡fdd„ƒZdS)z0TestMerge.test_merge_type.<locals>.NotADataFramecsˆSrr#r`©Ú NotADataFramer#r$Ú _constructorœsz=TestMerge.test_merge_type.<locals>.NotADataFrame._constructorN)Ú__name__Ú
__module__Ú __qualname__Úpropertyrr#rr#r$r›srrVrx)r
rÚ
isinstancer)r\r]rSZnadrur#rr$Útest_merge_typešszTestMerge.test_merge_typecCs¬t tdddddƒgtddƒgdœ¡}ttdƒd    }t||gd
d }t||gd
d }ttdddddƒtdddddƒgtddƒtddƒgdœƒ}|rœ| t¡}t     ||¡dS) NiÝé rOé8riäW)rbÚtrÅr³T)Z ignore_index)
r
rðrrrrr~r4rrrs)r\r°rbr]rurvr#r#r$Útest_join_append_timedeltas¥sÿþÿ
z%TestMerge.test_join_append_timedeltascCs†t d¡}tt||gddgdƒ}tt|gdgdƒ}|j|ddd}tt||gtdƒdt|tjgtdƒdd    œƒ}t     ||¡dS)
Ni£áÚAÚBrkÚrri)rür„ZAB)Ú0Z0r)
rZ timedelta64r
rrrr0r6rrrs)r\ÚtdÚlhsÚrhsrurvr#r#r$Útest_join_append_timedeltas2ºs
þÿz&TestMerge.test_join_append_timedeltas2ÚunitÚDrËÚmÚsÚmsÚusÚnsc
CsÚtdddgiƒ}tddgddgdd}d|›d}|dkr@d    }n|}| |¡ d¡}|dj|ksft‚|j|dd
d }tjd d g|d }t    j
j j j ||jd }tddg|dœddgd}    |    dj|ksÊt‚t ||    ¡dS)NÚ    entity_idéeéfÚdays©rlr9z datetime64[ú]©rrËrz datetime64[s]TrÖÚnatr(©r!r$r³)r
rr~Úto_framer)rrrr¶r0ÚcoreÚarraysZ DatetimeArrayZ _simple_newrrrs)
r\rrRÚserr)Z    exp_dtyperSrur$r|r#r#r$Útest_other_datetime_unitÊs& þûz"TestMerge.test_other_datetime_unitc        CsÞtdddgiƒ}tddgddgdd}d|›d}|dkrtd    }tjt|d
| |¡W5QRX| d ¡ d¡}n"| |¡ d¡}|dj|ks–t‚|j    |dd d }tddgt
j ddg|ddœddgd}t   ||¡dS)Nr!r"r#r$r%zm8[r&r'z/Supported resolutions are 's', 'ms', 'us', 'ns'rzm8[s]TrÖr(r(r)r³)r
rr“r”r–r~r*r)rrrr¶rrrs)    r\rrRr-r)r—rSrur|r#r#r$Útest_other_timedelta_unitès  þz#TestMerge.test_other_timedelta_unitc    Csètdddgdddgddd    gd
œƒ}tdddgdddgddd    gd
œƒ}d d d g|_d d d g|_tdddgdddgddd    gdddgddd    gdœƒ}d d d d d g|_t t||ƒ|¡dd d g|_d}tjt|dt||ƒW5QRXdS)Nr&rGrMrNrOr¢rdrrÛ©rfrgrjrfr+r )rfrgrjZv3Zv4rVz;Data columns not unique: Index\(\['foo'\], dtype='object'\)r)r
rˆrrrsrr“r”r)r\r]rSrvr—r#r#r$Ú&test_overlapping_columns_error_messages$""  ûÿ     z0TestMerge.test_overlapping_columns_error_messagecCsttjddddddgdœƒ}ttjdddddddgdœƒ}ttjdd    ddddtjtjgtjdddgd
œƒ}t||d d d }t ||¡dS)NÚ20151010rGr-©Úperiodsr/r&r²Ú20151011rMrNrèrfr¤rµ)r
r0Ú
date_rangerr5rrrrsrr#r#r$Útest_merge_on_datetime64tzs$þÿþÿ ýÿz$TestMerge.test_merge_on_datetime64tzc
CsÆtddgtjdddddœƒ}tddgtjdddddœƒ}tdddgttjddddƒtjgtjgttjddddƒd    œƒ}t||d
d d }t ||¡|d jdks°t    ‚|djdksÂt    ‚dS)Nr&rGr2r-r3r²rMr5rèrfr¤rµr¦zdatetime64[ns, US/Eastern]r§)
r
r0r6rr6rrrrsr)rrr#r#r$Útest_merge_datetime64tz_values3s0þÿþÿÿÿüÿ     z(TestMerge.test_merge_datetime64tz_valuescCs®tjdd}ttjd|jdgdgtjd|jdgdœddd    gd
}|dd …}|j|dd }tttd t|d t|d ttd t|d dœdddddgd
}t     ||¡dS)NÚUTCr.Z2018g@Z2019)rr_Údate2rr_r:r³rrxr()r¦Údate2_xrr§Údate2_yr¦r;r§r<)
r0ZDatetimeTZDtyper
r1r/rrr3rrrs)r\Zdtzrmrirurvr#r#r$Ú test_merge_on_datetime64tz_emptyNs( ýú û ø
z*TestMerge.test_merge_on_datetime64tz_emptycCs¼ttjddddddgd}d|d    <tt d
d d g¡d dœƒ}|dj d¡j d¡|d<t||ddd}ttjddddddgdtj    gdtj    gdd gddœƒ}t
  ||¡dS)Nz2017-10-29 01:00rNÚHz Europe/Madrid)r4Úfreqr/rr³r&r_z2017-10-29 03:00:00z2017-10-29 04:00:00z2017-10-29 05:00:00rG)rr_r9r¤©r„ryrdrM)rr¦r§) r
r0r6Ú to_datetimerÅZ tz_localizeZ
tz_convertrrr5rrrsrr#r#r$Ú+test_merge_datetime64tz_with_dst_transitiongs:þýÿøÿ ÿûÿ    z5TestMerge.test_merge_datetime64tz_with_dst_transitioncCs”tjdddd}tttt|ƒƒƒ|dgd}t||gƒ}|j|dddd    }tt     tj
dtj d
  d ¡  d d ¡d ¡ddg| ¡jd}t ||¡dS)Nz
2016-01-01éÚM©r4r?Zpnum©rlrˆTr‹)rorpr„r(rGéÿÿÿÿr&Zpnum_xZpnum_y©rˆrl)r0Ú period_ranger
rrrrrrrrÁr'ÚrepeatÚreshapeÚ
sort_indexrlrrrs)r\rlr]rSrurvr#r#r$Ú"test_merge_non_unique_period_index‡s $ýz,TestMerge.test_merge_non_unique_period_indexcCsttjddddddgdœƒ}ttjdddddddgdœƒ}ttjdd    ddddtjtjgtjdddgd
œƒ}t||d d d }t ||¡dS)Nr2rGrrEr&r²r5rMrNrèrfr¤rµ)r
r0rIrr5rrrrsrr#r#r$Útest_merge_on_periods”s ÿþÿ ýÿzTestMerge.test_merge_on_periodscCsÎtddgtjdddddœƒ}tddgtjdddddœƒ}tjdddd}tjdddd}tdddgt|ƒtjgtjgt|ƒd    œƒ}t||d
d d }t ||¡|d jdks¸t    ‚|djdksÊt    ‚dS)Nr&rGr2rrEr²rMr5rèrfr¤rµr¦z    Period[D]r§)
r
r0rIrr6rrrrsr)r)r\rirmZexp_xZexp_yrvrur#r#r$Útest_merge_period_values©s$ÿÿýÿ z"TestMerge.test_merge_period_valuesc
CsZ|\}}| ¡}| ¡}tddddddgddtjtjtjtjgddtjtjtjtjgtjdddddgtjdddddgd    œƒ}td
d d d d d gd
d d gd |d<|ddddddg}t||dddd}t ||¡|j|dddd}t ||¡t ||¡t ||¡|}|jddid}t||dddd}    t |    |¡|j|dddd}    t |    |¡dS)Nrr&rGrMrNrOrHrI)rJÚcol_conflict_xrLÚcol_conflict_yrPÚ    left_onlyÚbothÚ
right_only©Ú
categoriesÚ_mergerJrPrLrQrPr¤T©ryr„Z    indicatorZ custom_namer³)    r­r
rr5rrrrrsÚrename)
r\rTrRrSÚdf1_copyÚdf2_copyZ    df_resultÚtestZdf_result_custom_nameZtest_custom_namer#r#r$Útest_indicator¿snûÿ    ú÷
úÿ     ÿÿ ÿzTestMerge.test_indicatorc    Csh|\}}d}tjt|dt||ddddW5QRXtjt|d|j|ddddW5QRXdS)Nz<indicator option can only accept boolean or string argumentsrrJr¤rOrXrš)r\rTrRrSr—r#r#r$Ú#test_merge_indicator_arg_validationþs z-TestMerge.test_merge_indicator_arg_validationcCsä|\}}t||dddd}|jdk ¡s,t‚|j|dddd}|jdk ¡sPt‚t||dddd}|jdk ¡stt‚|j|dddd}|jdk ¡s˜t‚t||dddd}|jd    k ¡s¼t‚|j|dddd}|jd    k ¡sàt‚dS)
NrJriTrXrTrmrRr‹rS)rrWr®r)r\rTrRrSZtest2Ztest3Ztest4r#r#r$Ú%test_merge_indicator_result_integritysz/TestMerge.test_merge_indicator_result_integrityc
Cs|\}}dD]€}tdddg|ddgiƒ}d|›d}tjt|dt||ddd    d
W5QRXtjt|d|j|ddd    d
W5QRXq tddgddgd œƒ}d }tjt|dt||ddd d
W5QRXtjt|d|j|ddd d
W5QRXdS)N)Z_right_indicatorZ_left_indicatorrWrJr&rGzECannot use `indicator=True` option when data contains a column named z;|Cannot use name of an existing column for indicator columnrr¤TrX)rJÚcustom_column_namez:Cannot use name of an existing column for indicator columnr`©r
r“r”r–r)r\rTrRrûrÑZ df_badcolumnr—r#r#r$Útest_merge_indicator_invalids4
ÿûÿz&TestMerge.test_merge_indicator_invalidcCs´tddgddgdœƒ}tdddgdddgdœƒ}tddddgddddgdœƒ}td    d
d d gd    d d
gd |d <t||ddgddd}t ||¡|j|ddgddd}t ||¡dS)Nrr&rHrI)rJÚcol2rMr;rÃrRrSrTrUrWrJrcr¤TrX©r
rrrrrs)r\Zdf3Zdf4Zhand_coded_resultZtest5r#r#r$Ú%test_merge_indicator_multiple_columns=sÿ
þ
 z/TestMerge.test_merge_indicator_multiple_columnsc    Csbtddddgddddgd    œtd
ƒd }tddddd gd ddddgdœtdƒd }| ¡}| ¡}t||dddd}t ||¡t ||¡tddddgddddgddddgd dddgdœtd
ƒddddgd}t||dddd}t ||¡tddddgddddgd dddgdœtd
ƒd }t||ddd}t ||¡t ||¡t ||¡t||ddd}t ||¡tddddgddddgd dddgdœdddgtd
ƒd}| d¡}    t|    |dddd }t ||¡t|td gd!gdœd
gd gƒ}
t||
ddd"dd#} tj    t
| d$t||
ddddW5QRXtj    t
| d$t||
dddW5QRXt|tdgd%gdœd&gd gdd'} t| |ddd(dd)} tj    t
| d$t| |ddddW5QRXtj    t
| d$t| |dddW5QRXt| |
dd*dd+} tj    t
| d$t| |
ddd(dW5QRXd,} tj    t
| d$t| |
dd"dW5QRXd-} tj    t | d$t||dd.dW5QRXtddddgd/d0d/d0gddddgdœtd
ƒd }tdddgd/d0d/gd ddgd1œtd&ƒd }tdddgd/d0d/gdddgd ddgd2œtd&ƒd } d3} tj    t
| d$t||dddW5QRXt||ddgdd}t || ¡dS)4NrHrIrarbÚcatÚdogZweaselZhorserªrNrkrcZmeowZbarkzum... weasel noise?ZnayZchirp©rHrarOTz1:1)rorpÚvalidate)Úa_xrIÚa_yrarjrkrFZ
one_to_one©rHrIra)ryri)rIrHrarH)ror†riZmooZ one_to_manyzBMerge keys are not unique in right dataset; not a one-to-one mergerZcowrM)r…Z many_to_onezAMerge keys are not unique in left dataset; not a one-to-one mergeZ many_to_manyzCMerge keys are not unique in right dataset; not a many-to-one mergezBMerge keys are not unique in left dataset; not a one-to-many mergez™"jibberish" is not a valid argument. Valid arguments are:
- "1:1"
- "1:m"
- "m:1"
- "m:m"
- "one_to_one"
- "one_to_many"
- "many_to_one"
- "many_to_many"Z    jibberishrr&)rHrIrb©rHrIrarbzQMerge keys are not unique in either left or right dataset; not a one-to-one merge) r
rr­rrrrsrrr“r”rr–)r\rirmZ    left_copyZ
right_copyrurvZ
expected_2Z
expected_3Zleft_index_resetZ right_w_dupsr—Z left_w_dupsZexpected_multir#r#r$Útest_validationPs(þ  þû      
 
 
 
ü
ø ÿ 
 
 
ýú        
 
 
ýù
 
û  ûûÿûûûÿ 
 
 
ýú    ýú    üù ÿzTestMerge.test_validationc    Cs:tgggdœƒ}tjddt||ddW5QRXdS)NrlÚraise)Údividerªrx)r
rZerrstater)r\rHr#r#r$Ú)test_merge_two_empty_df_no_division_errorsz3TestMerge.test_merge_two_empty_df_no_division_errorr¤zindex,expected_indexrGrNNú
2001-01-01z
2002-02-02z
2003-03-03c
Cs8g|]0}tdddg|dtddddddgtjdf‘qS)r&rGrMr(N)r rÚfloat64©Ú.0Zdtypr#r#r$Ú
<listcomp>)sýþzTestMerge.<listcomp>)r&rG)rGrM)rMrNú
2001-01-02ú
2001-01-03)r?Z1dZ2dZ3dc    Cs®tdddgdddgdœ|d}tddddddd    giƒ}|j|d
d |d }tdddgdddgdddgtjddgtjddgtjd    d    ggd d
dgd}|j|d dt ||¡dS)Nrr&rG©rHrfrkrIrMrNrOrfTrŒrHr³)Úinplace)r
rrr5rrrrs)r\r„rlÚexpected_indexrRrSrurvr#r#r$Ú$test_merge_on_index_with_more_valuess,
 
 
ú÷ z.TestMerge.test_merge_on_index_with_more_valuescCsŒtdddgdddgdœƒ}tddddgiƒ}tddddgddddgddddgdœdd    dgdddtjgd
}|j|d    d d d }t ||¡dS)Nr&rGrMrryrI©rHrfrIrHrfrHTrmrŒ©r
rr5rrrrsrr#r#r$Útest_merge_right_index_rightXs" ýz&TestMerge.test_merge_right_index_rightcCs†tddgddgdœƒ}tddgddgdœƒ}|j|dd    g|d
}|d kr`tddgddgdœƒ}ntddgddgdœƒ}t ||¡dS) NrgZpigé(r)ÚanimalÚ    max_speedZquetzaléPrr‚rµrmrq)r\r„Úleft_dfÚright_dfrurvr#r#r$Útest_merge_preserves_row_ordergsz(TestMerge.test_merge_preserves_row_ordercCs´tdddgtdddgtdƒddœƒ}tddddgitddd    gƒd
}|j|d d d d}tddddgtdddd    gƒddddgdœdddtjgd
}|jdd dgd}t     ||¡dS)Nr&rGrMrHrIÚabcrUryrarkrfTrmrŒr}rr³)
r
rrr    rrr5ZreindexrrrsrŽr#r#r$Ú8test_merge_take_missing_values_from_index_of_other_dtypess þÿ 
 
ý úzBTestMerge.test_merge_take_missing_values_from_index_of_other_dtypecCsntt d¡ d¡ddddddgd    }tt d¡ d
¡dddd d gd    }|jjD] }d |j_qR| |¡dS)Nr¸)rNrOr&rHrIrarbrcr³)rOrNr;rÃF)    r
rrÁrKZ_mgrr,ÚflagsZ    writeabler)r\rXrYr"r#r#r$Útest_merge_readonlyˆs ÿ
ÿ 
zTestMerge.test_merge_readonly)Lrr    r
r“Úfixturer]rSrirmrwr}r€r‚rŠrr˜r›rŸr©r¯r±r·r¿rÂrÆrÐrÒrÓÚmarkÚ parametrizerÚrârärçrérórõrrr rrr.r/r1r7r8r=rBrMrNrOr]r^r_rbrernrqr    r r0r6rrÚALL_REAL_NUMPY_DTYPESr Ú from_tuplesrr5rrr|rr†rˆrŠr#r#r#r$rUpsÚ
 
    
 
           
 
üþ    
 
/*"ÿ  
 
  ?
"F þ ÿþû ûÿþþþ þáþ' 
rUcCsNdD]D}|j||d}t| ¡| ¡|dd}| d¡}tj||ddqdS)N)r‹rir¤r¹T)r„r…rlF)Z check_names)rrrrrrrs)r;rÃr„rurvr#r#r$r͘s
 
rÍc@s|eZdZej dddgeddgƒ d¡g¡dd„ƒZej de    j
e    j e    j e    j e    jg¡ej de    j
e    je    je    jg¡d    d
„ƒƒZej d d d dgdddgd d dgdddgdœfd d dgddgd dgddgdœfd d gdddgd d gddgdœfg¡dd„ƒZdd„Zdd„Zdd„Zdd„Zej ddd d gedd dgƒ d¡fd!ddgedd dgƒ d¡fdd ged"d#ged$fdd ged"d#ged$fg¡d%d&„ƒZej ded d gd'd$dd d(gfed d gd)d$dd d(gfdd d gd*d+d,gfd!ddgd*d+d,gfdd d gd*d+d,gfejd-d d.d/d0d1gfejd-d d.d/dd gfejd-d d.d/d!dgfejd2dd3ejd2dd4d5fg    ¡d6d7„ƒZej d8d d gd9fgd:fd gd;fd gd<fg¡d=d>„ƒZej d8dd gd9fgd:fd gd;fdgd<fg¡d?d@„ƒZej dAd:d#d dBgd"dCdggfd9d#d dBgd"dCdggfd<d#d dBgd"dCdggfd;d"dCdgd#d dBggfg¡dDdE„ƒZ dFdG„Z!ej dHdIdJdKdLdMdNdOdPdQdRg
¡dSdT„ƒZ"dUS)VÚTestMergeDtypesÚ
right_valsr+r Úcategoryc
Csvtddgtddgƒ d¡ddgddgtddgdd    tddgd
d    d œƒ}td |iƒ}t||d d }t|jjƒsrt‚dS)Nr+r r’r&rGçð?ç@Úuint64r(Úint32)rrÚCrÚEÚFrrx)r
rr~rrrr)r)r\r‘rirmrur#r#r$Útest_different¤súÿ
zTestMergeDtypes.test_differentÚd1Úd2c
Cs@t |¡}t |¡}ttjdddgd|dddgdtjt d    ¡tjdd
œƒ}t d d g¡}td tjddg|di|d}|j|ddgd}|     ¡}    |j
dkr¬t d¡}tjtj |d|    d <d|    j |    j dk|    jdk@d f<d|    j |    j dk|    jdk@d f<t ||    ¡|j|ddgdd}|    jddgdddt ||    ¡dS)Nrr&rGrr(r+r rìé)Úk1Úk2Úv)rGr )r&r+rjrOrdrkržrŸrxrÑrsTrîZ    mergesort)Úkindrz)rr)r
r¶rÁr'rrrr­r¡r5r‡ržrŸrrrsZ sort_values)
r\r›rœZdtype1Zdtype2rirlrmrurvr#r#r$Útest_join_multi_dtypesºs*
 
 
ýÿ
 
 z&TestMergeDtypes.test_join_multi_dtypeszint_vals, float_vals, exp_valsr&rGrMr“r”ç@©ÚXÚYcCsdtd|iƒ}td|iƒ}t|ƒ}|j|ddd}t ||¡|j|ddd}t ||ddg¡dS)Nr¥r¦r’rq)r\Zint_valsZ
float_valsZexp_valsrrrvrur#r#r$Útest_merge_on_ints_floatsÛs   z)TestMergeDtypes.test_merge_on_ints_floatscCs€tddgddgdœddgd}td    gd
gd œdd gd}|j|dd d}tddgddgtjdgdœddd gd}t ||¡dS)Nr“r”r^r¸rerfrgr³rGéÈ)rfrjrjrirµgi@r0)r
rrr5rrrsrr#r#r$Útest_merge_key_dtype_castñsþz)TestMergeDtypes.test_merge_key_dtype_castc    Csötddddgiƒ}tddddgiƒ}tdgdgd    œƒ}t t¡"|j|ddd
}t ||¡W5QRXt t¡*|j|ddd
}t ||ddg¡W5QRXtdtjtjdgiƒ}t d¡*|j|ddd
}t ||ddg¡W5QRXdS) Nr¥r&rGrMr¦皙™™™™ñ?g@r£r¤r’)r
rrZassert_produces_warningÚ UserWarningrrsrr5)r\rrrvrur#r#r$Ú!test_merge_on_ints_floats_warningüs   z1TestMergeDtypes.test_merge_on_ints_floats_warningcCsttdtddgtdiƒ}tdddgiƒ}tdddgitd}t||dd}t ||¡t||dd}t ||¡dS©NrfTFr(rx)r
rr4rrrrs©r\rRrSrvrur#r#r$Ú(test_merge_incompat_infer_boolean_objects z8TestMergeDtypes.test_merge_incompat_infer_boolean_objectcCsxtdtddtjgtdiƒ}tdddgiƒ}tdddgitd}t||dd}t ||¡t||dd}t ||¡dSr­)r
rrr5r4rrrrsr®r#r#r$Ú5test_merge_incompat_infer_boolean_object_with_missings zETestMergeDtypes.test_merge_incompat_infer_boolean_object_with_missingzdf1_vals, df2_valsrrHrIrýFTr(cCs\td|iƒ}td|iƒ}t||dgd}t|jjƒs8t‚t||dgd}t|jjƒsXt‚dS)Nrrx)r
rrrr)r)r\Údf1_valsÚdf2_valsrRrSrur#r#r$Ú!test_merge_incompat_dtypes_are_ok+s   z1TestMergeDtypes.test_merge_incompat_dtypes_are_okr•rar–rÚ1Ú2z1/1/2011rrEz
2011-01-01z
2011-01-02Z20130101)r4r-r3c    CsÀtd|iƒ}td|iƒ}d|dj›d|dj›d}t |¡}tjt|dt||dgdW5QRXd|dj›d|dj›d}t |¡}tjt|dt||dgdW5QRXdS)NrzYou are trying to merge on z and z9 columns. If you wish to proceed you should use pd.concatrrx)r
r)ÚreÚescaper“r”r–r)r\r±r²rRrSr—r#r#r$Ú test_merge_incompat_dtypes_errorCs  ÿ
ÿ
z0TestMergeDtypes.test_merge_incompat_dtypes_errorzexpected_data, howr¤r‹rmric    Cs`tdgdg|d}tdgdg|d}t|||d}tt|ƒƒ}t||dg|d}t ||¡dS)N)r&ÚidrÀ©rGr¹©rlrˆr)©r
rrrrrrs)    r\Úany_numeric_ea_dtyper„Ú expected_datar›rœruZ    exp_indexrvr#r#r$Útest_merge_EA_dtypess  ÿz#TestMergeDtypes.test_merge_EA_dtypec    Cs`tdgdg|d}tdgdg|d}t|||d}tt|ƒƒ}t||dg|d}t ||¡dS)N)rHr¹rÀ)rIr¹r»r¼)    r\r„r¾Zany_string_dtyper›rœruZexp_idxrvr#r#r$Útest_merge_string_dtype‡s  ÿz'TestMergeDtypes.test_merge_string_dtypezhow, expected_datarNrOcCs\tddgddgdœƒ}tddgddgdœƒ}t|||d    }t|d
d d gd }t ||¡dS)NTFr&rO©rrrMrN©rr—r¹rrr—r³rq)r\r„r¾rRrSrurvr#r#r$Útest_merge_bool_dtype›s
z%TestMergeDtypes.test_merge_bool_dtypec    CsÎtdddddgdddddgd    œt ¡d
}| ¡}tdddtjdgddd tjd gd œ|d
}| ¡}t||dg|d}t ||¡t ||¡tt     
d¡t ¡t     
d¡gt   dddg¡d}t  |j|¡dS)Nr´rµÚ3Ú4Ú5Ú6Ú7Ú8)©Úlvl0zlvl1-a©rËzlvl1-b)Údatar)Ú9Z11)rÊ©rËzlvl1-crÊ)rirmryr„ÚOrÌrÏrk)r
r0Z StringDtyper­ZNArrrrsrrr)rrr¨rå)    r\rØZ string_dtyperRrZrSr[ržrvr#r#r$Útest_merge_ea_with_string¬s0  þûþû  ÿþz)TestMergeDtypes.test_merge_ea_with_stringzleft_empty, how, exp)Friri)FrmÚempty)Fr‹rÒ)Fr¤ri)FÚcrossÚ empty_cross)TrirÒ)Trmrm)Tr‹rÒ)Tr¤rm)TrÓrÔcCsútddgddgdœƒ}tdgdgdœdd    }|r<| d
¡}n
| d
¡}|j||d }|d kr~tddgddgtjtjgd œƒ}nl|dkr ttjgdgdgdœƒ}nJ|dkrÎtdddgdd}|rê|dddg}n|dkrêtddddgdd}t ||¡dS)NrGr&rMrNrÁrOrÂr'r(rr¹ri)rrr—rm)rrr—rÒrrr—rÀrÔZA_xZA_y)r
Úheadrrr5rrrs)r\Z
left_emptyr„r|rirmrurvr#r#r$Útest_merge_emptyÍs" 
"z TestMergeDtypes.test_merge_emptyN)#rr    r
r“rŒrrr~ršrr'r–Úint16Zint8Zuint8rsÚfloat32Úfloat16r¢r§r©r¬r¯r°r4rºr³r0r6r¸r¿rÀrÃrÑrÖr#r#r#r$r£s´ÿ
  &  ýþ
   úþ
þ þóþ
 
üþ    
 
üþ    
üþ    
!öþrcCsNtj d¡tttjjddgddƒ tddgƒ¡tjjdddgddd    œƒS)
NéÒr+r )r^rêÚoneÚtwoZthreer¤)rrÚseedr
rÚchoicer~ÚCDTr#r#r#r$riõs 
ÿüÿricCs4tj d¡ttddgƒ tddgƒ¡ddgdœƒS)NrÚr+r r&rG)r¥ÚZ)rrrÝr
rr~rßr#r#r#r$rms "ÿrmc
@sþeZdZdd„Zdd„Zdd„Zdd„Zej     d    d
d g¡d d „ƒZ
dd„Z ej     ddd„dd„dd„g¡dd„ƒZ dd„Z dd„Zej     d    d
d g¡ej     dd d
d
d gd
d gd
d gfddddgddgddgfddddgddgddgfg¡d d!„ƒƒZd"d#„Zd$S)%ÚTestMergeCategoricalcCsVt||dd}|j ¡}ttddgdt d¡t d¡gdddgd    }t ||¡dS)
Nr¥rxr+r rUrÐZY_xZY_yrk©    rrårLrrrr)rrr¨)r\riržrurvr#r#r$Útest_identical s
þz#TestMergeCategorical.test_identicalcCsVt||dd}|j ¡}ttddgdt d¡t d¡gddd    gd
}t ||¡dS) Nr¥rxr+r rUrÐr'r¦ràrkrâ©r\rirmržrurvr#r#r$Ú
test_basics
 ýúzTestMergeCategorical.test_basiccCsDtddddddœddddddœdœƒ}td    d    d    d    d    dœd
d
d
d
d
dœd œƒ}t||d ddd }| ¡}| ¡}|d d¡|d<t||d ddd }|d tdgƒ¡|d<t ||¡| ¡}|d d¡|d<t||d ddd }t ||¡| ¡}|d d¡|d<| ¡}|d d¡|d<t||d ddd }t ||¡dS)NrHrIrarbrc)rr&rGrMrNÚnullr«rÉrÊrªri)r„rƒr†r’)r
rr­r~rrrrs)r\rmrir]rvZcrightruZcleftr#r#r$Útest_merge_categorical$s6þÿþÿ  z+TestMergeCategorical.test_merge_categoricalcCs–ttdddgdddgddddgdœƒ}ttdddgdddgdd    d
d gd œƒ}t||d gd}ttdddgƒdddgd d
d    gdœƒ}t ||¡dS)Nrrr—rUZA0ZB0ZC0)ÚFooÚLeftZC1ÚB1ÚA1)rèÚRightrèrx)rèrérìrdrr#r#r$Ú'tests_merge_categorical_unordered_equalOs$þÿþÿ ýÿz<TestMergeCategorical.tests_merge_categorical_unordered_equalÚorderedTFcCsØtddg|d}tdddgtdddg|dddd    gd
œƒ d d g¡}td ddgtdddg|ddddgdœƒ d d g¡}t||dddd}tdddgtdddg|dddd    gddtjgdœƒ d d g¡}t ||¡dS)NZP2ZP1©rVrîr—rr(rr&rG)r¹ÚprHr¹rðrr^rrì)r¹rðr›riTr™g&@g(@)r¹rðrHr›)    rr
rrrrr5rrrs)r\rîZpcatrRrSrurvr#r#r$Ú5test_multiindex_merge_with_unordered_categoricalindexhs8ýÿúýÿú
üÿùzJTestMergeCategorical.test_multiindex_merge_with_unordered_categoricalindexcCsš|j|j d¡d}t||dd}|j ¡}ttddgdt     d¡td    d
gdgdd d gd }t
  ||¡|j j  |j j ¡s€t‚|jj  |jj ¡s–t‚dS)Nr’)ràr¥rxr+r rUrÐr&rGr¦ràrk)Úassignràr~rrårLrrrr)rrr¨r¥rôZ#_categories_match_up_to_permutationrrär#r#r$Útest_other_columns…s
  ýú z'TestMergeCategorical.test_other_columnsÚchangecCs|Srr#r:r#r#r$r<œr=zTestMergeCategorical.<lambda>cCs| tdddgƒ¡S)Nr+r Zbah©r~rßr:r#r#r$r<r=cCs| tdd¡S)NT©rîrõr:r#r#r$r<žr=c    Cs‚||j d¡ƒ}|j|d}t|jjjƒs.t‚t||d|d}|j     ¡}t
t  d¡t  d¡t  d¡gdddgd    }t   ||¡dS)
Nr4)r¥r¥rµrÐr'r¦ràrk)r¥r~ròrrôr)rrrårLrrrrr¨)    r\rôrØrirmr¥ržrurvr#r#r$Útest_dtype_on_merged_different™s  
ÿz3TestMergeCategorical.test_dtype_on_merged_differentc sŽd‰tdddddddd    d
d g
ˆd d dddgdˆ‡fdd„dDƒ‡fdd„dDƒdœƒ}| dd„¡}t||t|jƒd}t ||¡dS)NrOrHrIrarbrcrÉrÊrËrÑÚjrÚwr;rÃr×rGcs$g|]}|gdˆD]}|‘qqSrºr#©ruZeachÚletter©rr#r$rvºsþzKTestMergeCategorical.test_self_join_multiple_categories.<locals>.<listcomp>)rr!ÚurðÚocs g|]}|gˆD]}|‘qqSr#r#rúrür#r$rv¿s ó)
ZaaZbbÚccÚddÚeeÚffZggÚhhÚiiZjjrmcSs
| d¡S)Nr’)r~r:r#r#r$r<Ór=zITestMergeCategorical.test_self_join_multiple_categories.<locals>.<lambda>rx)r
Úapplyrrrˆrrrs)r\r]rur#rür$Ú"test_self_join_multiple_categories²s
þ
þøÿz7TestMergeCategorical.test_self_join_multiple_categoriescCs,ttdddƒdgtdddƒdggddgd}|d d    ¡|d<ttdddƒdgtddd
ƒd ggdd gd}|d d    ¡|d<tt d ¡ ¡ddgt d¡ ¡dtjgt d¡ ¡tjd ggddd gd}t||ddgd}t     ||¡tt d ¡ ¡ddggddd gd}t||ddgd}t     ||¡dS)NiÑr&rªrGçÍÌÌÌÌÌô?rZnum2r³r’rMçffffffö?Znum4rrrwrxr¤r@r‹)
r
rr~r0r1rr5rrrrs)r\r]rSZexpected_outerZ result_outerZexpected_innerZ result_innerr#r#r$Útest_dtype_on_categorical_datesÚs2ÿÿýú þz4TestMergeCategorical.test_dtype_on_categorical_datesz.category_column,categories,expected_categoriesrGr&ÚFalseÚTruec    Cs’tddddg|dœƒ}|d t||d¡|d<tddgddgd    œƒ}| |¡}tddg|ddgd
œƒ}|d t||d¡|d<t ||¡dS) Nr&rGrMrN)r¹rfrfrörÛ)r¹Únum)r¹rfr )r
r~rßrrrrs)    r\Zcategory_columnrVZexpected_categoriesrîrRrSrurvr#r#r$Ú/test_merging_with_bool_or_int_cateorical_columnús
zDTestMergeCategorical.test_merging_with_bool_or_int_cateorical_columncCs\ttddtjgddddœƒ}t||dd}ttddtjgdddddœƒ}t ||¡dS)    Nr&rGr*r(rÁrrx)rÚB_xZB_y)r
rrr5rrrrs)r\r]rurvr#r#r$Útest_merge_on_int_arrays ÿz,TestMergeCategorical.test_merge_on_int_arrayN)rr    r
rãrårçrír“rŒrrñrór÷rr    r rr#r#r#r$rá
s6
+
ýþ
( ýþ rácCstddddgidddgdS)NrHr¸r^rrGr&rkrQr#r#r#r$r„sr„cCstddddgidddgdS)    NrIé,édr¨rMr&rGrkrQr#r#r#r$r…sr…c@sreZdZej dddeddgddgdœd    d
gd fdd eddgddgdœd
d    gd fd dedddgddejgdœd    d
dgd fd d edddgejddgdœdd
d    gd fddeejddgdddgdœdd
d    gd fdd eddejgdddgdœd
d    dgd fddedddejgejdddgdœdd
d    dgd fdd edddejgejdddgdœdd
d    dgd fg¡dd„ƒZ    dS)ÚTestMergeOnIndexeszhow, sort, expectedr‹Fr¸r^r¨rrªrGr&rkTrirrmrrMr¤cCs$t||dd||d}t ||¡dS)NT)rorpr„r…rz)r\r„r…r„r…rvrur#r#r$Útest_merge_on_indexes%s0ÿz(TestMergeOnIndexes.test_merge_on_indexesN)
rr    r
r“rŒrr
rr5rr#r#r#r$r$sV""$ý$ýÿýÿý
þý    
þýÝþ/rrlcCsg|]}tddg|dd‘qS)r&rGÚ    index_colr8)r rtr#r#r$rv]srvrrr)rVr9rG)ÚstartÚstopr9r,z
2018-01-02r¥cCst|ƒj›d|j›dS)Nú[r&)Útyperr)r:r#r#r$r<cr=)r?cCsbtdddgi|d}tdddgi|d}|j|dgd    }tddgddgd
œ|d}t ||¡dS) NÚ    left_datar&rGrkÚ
right_datar“r”rrx)rrrq)rlrirmrurvr#r#r$Útest_merge_index_types[s
rz-on,left_on,right_on,left_index,right_index,nmr¤r‹F)NNNTTrT)NNNTTNc
Csøtdddddgitjddgddggd    d
gd d }tddddgtjddgddggd    d
gd |d }tddgddgdœtjddgdggd    d
gd d }|dk    rÀt|||||||d}    t |    |¡n4d}
tjt    |
dt|||||||d}    W5QRXdS)Nrr&rGrMrNrHrIrr¤r‹©Únamesrkr%rÁ)ryrƒr†rorpz$Cannot merge a Series without a namer)
r
rÚ from_productrrrrrsr“r”r–) ryrƒr†rorpÚnmrHrIrvrur—r#r#r$Útest_merge_seriesqsFþ
ýþù    ùr c    Cs’tdddddgitjddgddggd    d
gd d }tddddgtjddgddggd    d
gd d d}tjtddt||d    d
gdW5QRXdS)Nrr&rGrMrNrHrIrr¤r‹rrk)rr—r%z-Not allowed to merge between different levelsrrx)r
rrrr“r”rrrªr#r#r$Útest_merge_series_multilevel¦sþ
ýÿr!z!col1, col2, kwargs, expected_colsÚsuffixes)ÚÚ_duprZ0_dup)Nr$)Ú_xÚ_yZ0_xZ0_yr%r&rH)Nr&rý)r%Nz0.0_xrIÚb_yrj)Nr%)Z_aNZ0_arkcCsŽt|dddgiƒ}t|dddgiƒ}tddgddgddgg|d}|j|fddd    œ|—Ž}t ||¡t||fddd    œ|—Ž}t ||¡dS)
Nr&rGrMrNrOr¢r³Trnrq)rJrcÚkwargsZ expected_colsrHrIrvrur#r#r$Útest_merge_suffix¸s r)z how,expectedrr¨ré<éFéXé¼é )rrêZB2r&rƒcCsbtdddgdddgdœƒ}tdddgd    d
d gdœƒ}t||d |d d}d ddg|_t ||¡dS)Nrr¨r&r*r+rƒrÁrr,r-r.r)r%r%)ryr„r"r)r
rrˆrrrs)r„rvr„r…rur#r#r$Útest_merge_duplicate_suffixØs
 r/zcol1, col2, suffixes)rHrH)NN)rHrH)r#N)rr)Nr#c    CsXt|dddgiƒ}t|dddgiƒ}d}tjt|dt||dd|d    W5QRXdS)
Nr&rGrMrNrOz'columns overlap but no suffix specifiedrT©rorpr"ra)rJrcr"rHrIr—r#r#r$Útest_merge_suffix_errorös
r1rÞc    CsTtddddgiƒ}tddddgiƒ}tjtdd    t||d
d
|d W5QRXdS) NrHr&rGrMrIrNrOzPassing 'suffixes' as arTr0)r
r“r”Ú    TypeErrorr)r"rHrIr#r#r$Útest_merge_suffix_raises    sr3zcol1, col2, suffixes, msg)rHrHrlz(too many values to unpack \(expected 2\)z1not enough values to unpack \(expected 2, got 1\)c    CsTt|dddgiƒ}t|dddgiƒ}tjt|dt||dd|dW5QRXdS)    Nr&rGrMrNrOrTr0ra)rJrcr"r—rHrIr#r#r$Útest_merge_suffix_length_error    sr4Ú    cat_dtyperÛrÜÚreversec    Csôtdddgddtdddgdddœ}ttdddgƒ |d¡dd    d
gd œƒ d ¡}dddg}dd    d
g}|r|| ¡| ¡tt|ƒ ||¡|d œƒ d ¡}|j|ddd}tdd    d
gdd    d
gtdddgƒ |d¡dœƒ d ¡}t ||¡dS)NrHrIraFrï)rÛrÜrÛr&rGrM©r+rir+©r+rmTrn©rirmr+)    rr
rr~rr6rrrrs)    r5r6Z
cat_dtypesrRZdata_fooZ
data_rightrSrurvr#r#r$Útest_merge_equal_cat_dtypes    s8þ"ÿþ
 
ÿþýÿúr:cCs®tdddgdd}ttddgƒ |¡ddgdœƒ d    ¡}ttdddgƒ |¡d
ddgd œƒ d    ¡}|j|d d d }tddgd
dgtddgƒ |¡dœƒ d    ¡}t ||¡dS)NrHrIraFrïr&rGr7r+rMr8Trnr9)rr
rr~rrrrrs)r5rRrSrurvr#r#r$Útest_merge_equal_cat_dtypes2B    s$ÿþÿþ ÿþr;cCsjtdtt dd¡t dd¡gddiƒ}| ¡}|d d¡|d<t||ddd    }| ¡}t ||¡dS)
NrHrr&rGÚintervalr(r’r‹r@)    r
rr0ZIntervalr­r~rrrrs)rmrirurvr#r#r$Útest_merge_on_cat_and_ext_arrayX    s"ÿr=c    sÈddddg}dddg}tj||fdd    gd
}t|d }d |d <t|d }d |d <d‰d‰|j|d ˆˆfd}‡fdd„|Dƒ‡fdd„|Dƒ}tj||gdd    gd
}t|d }d |d <t ||¡dS)NrHrIrarbr´rµrÄr¤r‹rr³r#r¹r%r&©ryr"csg|] }|ˆ‘qSr#r#©rurû)Úl_sufr#r$rvz    sz1test_merge_multiindex_columns.<locals>.<listcomp>csg|] }|ˆ‘qSr#r#r?)Úr_sufr#r$rvz    s)rrr
rrrrs)    ÚlettersZnumbersrlZframe_xZframe_yruZexpected_labelsr{rvr#)r@rAr$Útest_merge_multiindex_columnsf    s( 
 
 
ÿÿ
rCcCs‚tdddgdddgdœƒ}tdddgt d    d
d g¡d œƒ}t||d dd}tdddgdddgt d    d
dg¡dœƒ}t ||¡dS)NrHrIrar´rµrÅ)r;rÃrÄÚ2000Z2001Z2002)rÃr×rirÃr@r6)r;rÃr×)r
r0rArrrrs©rRrSrurvr#r#r$Ú test_merge_datetime_upcast_dtype†    sÿýÿrFÚ n_categoriesrOé€cCsštdgtt|ƒƒƒ}tt|dƒdg|d}tdggdgtdgtt|ƒƒdd}t||dddd    }td
d „t|dƒDƒd d g|d}t ||¡dS)Nrr&r_rHr¢rUriTr™cSs&g|]}|dkr|dgn|tjg‘qS)rGg@)rr5)rurÑr#r#r$rv¦    sz9test_categorical_non_unique_monotonic.<locals>.<listcomp>r¦r§)r    rrr
rrrrs)rGrorRrSrurvr#r#r$Ú%test_categorical_non_unique_monotonic—    sýýrIcCs¸tddddddgdddgƒddddddgdœ}t|ƒ}tddddddgdddgƒddddddgddd    d
d d gd œ}t|ƒ ddg¡d}t|| ¡ddgddgdd}|jddgdd}|j|ddgd}t ||¡tddddddgdddgddddddddgdœ}t|ƒ}tddddddgdddgddddddddgddd    d
d d gd œ}t|ƒ ddg¡d}t|| ¡ddgddgdd}|jddgdd}|j|ddgd}t ||¡dS)NrHrIrarr&)ÚCat1ÚInt1rªg333333ó?rrrgš™™™™™ù?)ÚCatÚIntÚFactorrLrMrNrJrKrir¼)ZaxisrxTrö)    rr
rrrZdroprrrrs)rHrIrvrur#r#r$Ú&test_merge_join_categorical_multiindex­    s\þýû ÿüÿûûrOÚfuncrZ
merge_asof)r(Úerr_msg)rƒrorƒro)r†rpr†rpc    Csxtddgddgdœƒ}tddgddgdœƒ}d    |d
›d |d›d }tjt|d tt|ƒ||f|ŽW5QRXdS)Nr&rGrMrNrªrOr¢rhzCan only pass argument "rú" OR "z " not both\.r©r
r“r”rÚgetattrr0©rPr(rQrirmr—r#r#r$Ú/test_merge_join_cols_error_reporting_duplicateså    s
 
rVc    Csxtddgddgdœƒ}tddgddgdœƒ}d    |d
›d |d›d }tjt|d tt|ƒ||f|ŽW5QRXdS)Nr&rGrMrNrªrOr¢rhz Must pass "rrRz"\.rrSrUr#r#r$Ú,test_merge_join_cols_error_reporting_missingö    s
 
rWr(c    Csjtddgddgdœƒ}tddgddgdœƒ}d    }tjt|d
"tt|ƒ||fd d i|—ŽW5QRXdS) Nr&rGrMrNrªrOr¢rhzZCan only pass argument "on" OR "left_index" and "right_index", not a combination of both\.rryrHrS)rPr(rirmr—r#r#r$Ú1test_merge_join_cols_error_reporting_on_and_index
s
ÿrXcCsvtddgddgdœƒ}tddgddgdœƒ}t||dddd}tddgddgddgddgddgdœƒ}t ||¡dS)    Nr&r+)r;r×rmTr;)r„ror†)r;Zx_xZz_xZx_yZz_yrq©rirmrurvr#r#r$Útest_merge_right_left_index
sûÿ    rZcCstdgdgdœƒ ddg¡}tddgiƒ dg¡}tggdœtjd ddg¡}t||dgdd}t ||¡t||ddgd    }t ||¡dS)
Nr&rGrªrHrIr(TrÖrÕ)r
rrr'rrrrs)rRrSrvrur#r#r$Ú$test_merge_result_empty_index_and_on,
s r[c    Cs€tdddgdddœƒ}tdddgddœƒ}tjtddt||dd    W5QRXtjtddt||dd
d W5QRXdS) Nr&rGrM)rHrIÚb_xrªú(Passing 'suffixes' which cause duplicaterrHrx)r&r%r>©r
r“r”rrrÞr#r#r$Ú.test_merge_suffixes_produce_dup_columns_raises8
s r_cCsptdddgdddggdddgd}tddgddœƒ}t||dd}tddddggdd    d    d
gd}t ||¡dS) Nr&rGrHrIr³rMrªrxr\r'rqrYr#r#r$Ú3test_merge_duplicate_columns_with_suffix_no_warningD
s
"r`c    Csftddddgddddggddddgd}tddgddœƒ}tjtd    d
t||dd W5QRXdS) Nr&rGrHrIr\r³rMrªr]rrxr^rÞr#r#r$ÚItest_merge_duplicate_columns_with_suffix_causing_another_duplicate_raisesN
s(racCsŠtddgddggtddgƒd}tdd    gd
d ggd d gd}t||dddd}tdd    ddgd
d ddggtd d ddgƒd}t ||¡dS)Nr&rGrMrNrHg€\@r³rÛr^rrìr;rÃr‹Tr™©r
r rrrrsrEr#r#r$Ú%test_merge_string_float_column_resultW
s ÿrcc    CsXtdgdgdgd}tdgdgdgd}tjtddt||dgdd    W5QRXdS)
Nr¥r—é)rÍrˆrliçzCan only pass argumentrT)ryror^)Zdf_1Zdf_2r#r#r$Ú/test_mergeerror_on_left_index_mismatched_dtypesb
srecCsbttdƒƒ}t|tdƒdœƒ}tdtddƒiƒ}t|||dd}t|||jdd}t ||¡dS)NrMrÁr—r¢rr’)r    rr
rÚ_datarrrs)ÚcirmriÚresrvr#r#r$Ú#test_merge_on_left_categoricalindexj
s  rir)r*cCsätddgddgdœ|d}ttjtjgddgdœ|d}t||dd    d
}tddtjtjgddtjtjgtjtjddgd œ|d}t ||¡t||dd    d
}ttjtjddgddtjtjgtjtjddgd œ|d}t ||¡dS) Nr&rG)rfrJr(rMrN)rfrcrfr¤rµ)rfrJrc)rfrcrJr~)r)rirmrurvr#r#r$Útest_merge_outer_with_NaNv
s(ýú ýúrjcCshtddgitdgddd}tddgitdgddd}t||ddd}tdgddœƒ}t ||¡dS)    NrHr&rar¥rkrbr’)rjrkrbrYr#r#r$Ú test_merge_different_index_names“
s
rkcCshtdddgddœ|d}tdddgddœ|d}|j||d}tdddgdddœ|d}t ||¡dS©    Nr&rGrMrªr(rhr¹rlrq©r½rØrirmrurvr#r#r$Ú test_merge_eaœ
s
rncCstdddgddœ|d}tdddgddœ| ¡d}|j||d}ttdddg|dtdddg|dtdddg| ¡ddœƒ}t ||¡dSrl)r
Úlowerrrrrrsrmr#r#r$Útest_merge_ea_and_non_ea¥
sýÿrpr'úint64[pyarrow]cCsrt d¡tdddgi|d}tdddgidd}| |¡}| ¡}t ||¡| |¡}| ¡}t ||¡dS)NZpyarrowrHr&rGr(rq)r“Z importorskipr
rr­rrrs)r)r]rSrurvr#r#r$Ú!test_merge_arrow_and_numpy_dtypes´
s
 
 
rr)rr)Xrrrr¶Únumpyrr“Zpandas.core.dtypes.commonrrZpandas.core.dtypes.dtypesrZpandasr0rr    r
r r r rrrrrZpandas._testingZ_testingrrZpandas.api.typesrßZpandas.core.reshape.concatrZpandas.core.reshape.mergerrr%r2r7r‹rDrErFrTrUrÍrrirmrár„r…rrŒrrŽrr r!r)r5r/r1r3Útupler4r:r;r=rCrFrIrOrVrWrXrZr[r_r`rarcrerirjrkrnrprrr#r#r#r$Ú<module>sZ 4   
     
 
 
 
2 T
 

 
7 ýÿø
 
øþ
(óþ
ÿþ
  ýÿþùþ
    þ
 
þþ
 # 
8þþ     þþ     þþ