|
1 | | -# Selector order matters -------- |
2 | | -testthat::test_that("Join order matters", { |
3 | | - X <- data.frame(A = c(1, 1:3), B = 2:5) # nolint |
4 | | - Y <- data.frame(A = c(1, 1, 2), C = c(4, 4:5)) # nolint |
5 | | - Z <- data.frame(C = c(4, 4:6), D = 1:4) # nolint |
6 | | - |
7 | | - # full_join and inner_join are order independent |
8 | | - anl1 <- dplyr::full_join( |
9 | | - dplyr::full_join(X, Y), |
10 | | - Z |
11 | | - ) |
12 | | - anl2 <- dplyr::full_join( |
13 | | - dplyr::full_join(Y, Z), |
14 | | - X |
15 | | - ) |
16 | | - |
17 | | - testthat::expect_true( |
18 | | - dplyr::setequal(anl1, anl2) |
19 | | - ) |
20 | | - |
21 | | - anl1 <- dplyr::inner_join( |
22 | | - dplyr::inner_join(X, Y), |
23 | | - Z |
24 | | - ) |
25 | | - anl2 <- dplyr::inner_join( |
26 | | - dplyr::inner_join(Y, Z), |
27 | | - X |
28 | | - ) |
29 | | - |
30 | | - testthat::expect_true( |
31 | | - dplyr::setequal(anl1, anl2) |
32 | | - ) |
33 | | - |
34 | | - # left_join and right_join are order dependent |
35 | | - anl1 <- dplyr::left_join( |
36 | | - dplyr::left_join(X, Y), |
37 | | - Z |
38 | | - ) |
39 | | - anl2 <- dplyr::left_join( |
40 | | - dplyr::left_join(Y, Z), |
41 | | - X |
42 | | - ) |
43 | | - |
44 | | - testthat::expect_false( |
45 | | - dplyr::setequal(anl1, anl2) |
46 | | - ) |
47 | | - |
48 | | - anl1 <- dplyr::right_join( |
49 | | - dplyr::right_join(X, Y), |
50 | | - Z |
51 | | - ) |
52 | | - anl2 <- dplyr::right_join( |
53 | | - dplyr::right_join(Y, Z), |
54 | | - X |
55 | | - ) |
56 | | - |
57 | | - testthat::expect_false( |
58 | | - dplyr::setequal(anl1, anl2) |
59 | | - ) |
60 | | -}) |
61 | | - |
62 | 1 | # Different join keys ------ |
63 | 2 | testthat::test_that("Different join types", { |
64 | 3 | merged_selectors1 <- merge_selectors( |
|
0 commit comments