x <- tibble::tribble( ~chrom, ~start, ~end, "chr1", 1, 100, "chr1", 200, 500 ) y <- tibble::tribble( ~chrom, ~start, ~end, "chr1", 1, 100, "chr1", 200, 500 ) |> group_by(chrom) test_that("NULL is return when there are no shared groups, shared_groups()", { res <- shared_groups(x, y) expect_null(res) }) test_that("only shared groups are return, shared_groups()", { x <- tibble::tribble( ~chrom, ~start, ~end, "chr1", 1, 100, "chr1", 200, 500 ) |> group_by(chrom, start, end) res <- shared_groups(x, y) expect_true(length(res) == 1 && res == "chrom") }) x <- tibble::tribble( ~end, ~chrom, ~start, ~value, 75, "chr1", 125, 10 ) y <- tibble::tribble( ~chrom, ~start, ~end, ~scores, "chr1", 50, 100, 1.2, "chr1", 100, 150, 2.4 ) test_that("x columns are reordered based on y, reorder_names()", { res <- reorder_names(x, y) pred <- intersect(colnames(y), colnames(res)) n <- length(pred) expect_true(all(colnames(res[1:n]) == pred[1:n])) })