@@ -326,6 +326,32 @@ local({
326326 }
327327})
328328
329+ ### LHS and RHS same, different order
330+ local({
331+ l = list(
332+ lhs = data.table(id1=1:2, v1=1:2),
333+ rhs = data.table(id1=2:1, v2=2:1)
334+ )
335+ expected = list(
336+ inner = data.table(id1=1:2, v1=1:2, v2=1:2),
337+ left = data.table(id1=1:2, v1=1:2, v2=1:2),
338+ right = data.table(id1=2:1, v1=2:1, v2=2:1),
339+ full = data.table(id1=2:1, v1=2:1, v2=2:1)
340+ )
341+ frac = 0.0
342+ for (how in c("inner", "left", "right", "full")) {
343+ frac = frac + 0.1
344+ for (mult in c("all", "first", "last", "error")) {
345+ frac = frac + 0.01
346+ test(29 + (frac <- frac + 0.001), ans <- mergepair(l$lhs, l$rhs, on="id1", how=how, mult=mult, copy=TRUE), expected[[how]])
347+ test(29 + (frac <- frac + 0.001), copied(ans, l))
348+ test(29 + (frac <- frac + 0.001), ans <- mergepair(l$lhs, l$rhs, on="id1", how=how, mult=mult, copy=FALSE), expected[[how]])
349+ test(29 + (frac <- frac + 0.001), notcopied(ans, l, how=how))
350+ }
351+ }
352+ })
353+
354+
329355## fdistinct, another round
330356
331357local({
0 commit comments