Nothing
df <- dplyr::starwars
left <- cheapr::sset(df, 1:35)
right <- cheapr::sset(df, 30:50)
left$skin_color <- as.factor(left$skin_color)
right$skin_color <- as.factor(right$skin_color)
join_cols <- c("eye_color", "films")
test_that("joins", {
target <- dplyr::left_join(left, right, by = join_cols, relationship = "many-to-many")
actual <- f_left_join(left, right, by = join_cols, multiple = TRUE)
expect_identical(names(target), names(actual))
expect_equal(nrow(dplyr::anti_join(target, actual, by = names(target))), 0)
target <- dplyr::right_join(left, right, by = join_cols, relationship = "many-to-many")
actual <- f_right_join(left, right, by = join_cols, multiple = TRUE)
expect_identical(names(target), names(actual))
expect_equal(nrow(dplyr::anti_join(target, actual, by = names(target))), 0)
target <- dplyr::inner_join(left, right, by = join_cols, relationship = "many-to-many")
actual <- f_inner_join(left, right, by = join_cols, multiple = TRUE)
expect_identical(names(target), names(actual))
expect_equal(nrow(dplyr::anti_join(target, actual, by = names(target))), 0)
target <- dplyr::full_join(left, right, by = join_cols, relationship = "many-to-many")
actual <- f_full_join(left, right, by = join_cols, multiple = TRUE)
expect_identical(names(target), names(actual))
expect_equal(nrow(dplyr::anti_join(target, actual, by = names(target))), 0)
target <- dplyr::anti_join(left, right, by = join_cols)
actual <- f_anti_join(left, right, by = join_cols)
expect_identical(names(target), names(actual))
expect_equal(nrow(dplyr::anti_join(target, actual, by = names(target))), 0)
target <- dplyr::semi_join(left, right, by = join_cols)
actual <- f_semi_join(left, right, by = join_cols)
expect_identical(names(target), names(actual))
expect_equal(nrow(dplyr::anti_join(target, actual, by = names(target))), 0)
target <- dplyr::cross_join(left, right)
actual <- f_cross_join(left, right)
expect_identical(names(target), names(actual))
expect_equal(nrow(dplyr::anti_join(target, actual, by = names(target))), 0)
})
test_that("joins with `keep = TRUE`", {
target <- dplyr::left_join(left, right, by = join_cols, relationship = "many-to-many", keep = TRUE)
actual <- f_left_join(left, right, by = join_cols, multiple = TRUE, keep = TRUE)
expect_identical(names(target), names(actual))
expect_equal(nrow(dplyr::anti_join(target, actual, by = names(target))), 0)
target <- dplyr::right_join(left, right, by = join_cols, relationship = "many-to-many", keep = TRUE)
actual <- f_right_join(left, right, by = join_cols, multiple = TRUE, keep = TRUE)
expect_identical(names(target), names(actual))
expect_equal(nrow(dplyr::anti_join(target, actual, by = names(target))), 0)
target <- dplyr::inner_join(left, right, by = join_cols, relationship = "many-to-many", keep = TRUE)
actual <- f_inner_join(left, right, by = join_cols, multiple = TRUE, keep = TRUE)
expect_identical(names(target), names(actual))
expect_equal(nrow(dplyr::anti_join(target, actual, by = names(target))), 0)
target <- dplyr::full_join(left, right, by = join_cols, relationship = "many-to-many", keep = TRUE)
actual <- f_full_join(left, right, by = join_cols, multiple = TRUE, keep = TRUE)
expect_identical(names(target), names(actual))
expect_equal(nrow(dplyr::anti_join(target, actual, by = names(target))), 0)
})
test_that("joins with suffix", {
target <- dplyr::left_join(left, right, by = join_cols, relationship = "many-to-many", suffix = c("_left", "_right"))
actual <- f_left_join(left, right, by = join_cols, multiple = TRUE, suffix = c("_left", "_right"))
expect_identical(names(target), names(actual))
expect_equal(nrow(dplyr::anti_join(target, actual, by = names(target))), 0)
target <- dplyr::right_join(left, right, by = join_cols, relationship = "many-to-many", suffix = c("_left", "_right"))
actual <- f_right_join(left, right, by = join_cols, multiple = TRUE, suffix = c("_left", "_right"))
expect_identical(names(target), names(actual))
expect_equal(nrow(dplyr::anti_join(target, actual, by = names(target))), 0)
target <- dplyr::inner_join(left, right, by = join_cols, relationship = "many-to-many", suffix = c("_left", "_right"))
actual <- f_inner_join(left, right, by = join_cols, multiple = TRUE, suffix = c("_left", "_right"))
expect_identical(names(target), names(actual))
expect_equal(nrow(dplyr::anti_join(target, actual, by = names(target))), 0)
target <- dplyr::full_join(left, right, by = join_cols, relationship = "many-to-many", suffix = c("_left", "_right"))
actual <- f_full_join(left, right, by = join_cols, multiple = TRUE, suffix = c("_left", "_right"))
expect_identical(names(target), names(actual))
expect_equal(nrow(dplyr::anti_join(target, actual, by = names(target))), 0)
target <- dplyr::cross_join(left, right, suffix = c("_left", "_right"))
actual <- f_cross_join(left, right, suffix = c("_left", "_right"))
expect_identical(names(target), names(actual))
expect_equal(nrow(dplyr::anti_join(target, actual, by = names(target))), 0)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.