test_that("data_relocate works as expected", {
expect_error(
data_relocate(iris, select = "Species", before = 2, after = 3),
"You must supply only one of `before` or `after`."
)
expect_error(
data_relocate(iris, select = "Species", before = 10),
"No valid position defined in `before`."
)
expect_error(
data_relocate(iris, select = "Species", after = 10),
"No valid position defined in `after`."
)
expect_named(
data_relocate(iris, select = "Species", before = "Sepal.Length"),
c("Species", "Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width")
)
expect_named(
data_relocate(iris, select = "Species", before = "Sepal.Width"),
c("Sepal.Length", "Species", "Sepal.Width", "Petal.Length", "Petal.Width")
)
expect_named(
data_relocate(iris, select = "Sepal.Width", after = "Species"),
names(data_relocate(iris, select = "Sepal.Width", after = -1))
)
expect_named(
data_relocate(iris, select = c("Species", "Petal.Length"), after = "Sepal.Width"),
names(data_relocate(iris, select = c("Species", "Petal.Length"), after = 2))
)
})
test_that("data_relocate select-helpers", {
expect_identical(
colnames(data_relocate(iris, select = starts_with("Sepal"), after = 5)),
colnames(iris[c(3:5, 1:2)])
)
expect_identical(
colnames(data_relocate(iris, select = 1:2, after = 5)),
colnames(iris[c(3:5, 1:2)])
)
expect_identical(
colnames(data_relocate(iris, select = -1)),
colnames(iris[c(2:5, 1)])
)
expect_identical(
colnames(data_relocate(iris, select = Species, after = 1)),
colnames(iris[c(1, 5, 2:4)])
)
expect_identical(
colnames(data_relocate(iris, select = ~ Sepal.Width + Species)),
colnames(iris[c(2, 5, 1, 3:4)])
)
expect_identical(
colnames(data_relocate(iris, select = starts_with("sepal"), after = 5)),
colnames(iris)
)
expect_identical(
colnames(data_relocate(iris, select = starts_with("sepal"), after = 5, ignore_case = TRUE)),
colnames(iris[c(3:5, 1:2)])
)
})
# preserve attributes --------------------------
test_that("data_relocate preserves attributes", {
skip_if_not_installed("parameters")
m <- lm(Sepal.Length ~ Species, data = iris)
out <- parameters::parameters(m)
a1 <- attributes(out)
out2 <- data_relocate(out, 4:6)
a2 <- attributes(out2)
# attributes may not be in the same order
expect_true(all(names(a1) %in% names(a2)))
expect_identical(length(a1), length(a2))
})
# select helpers ------------------------------
test_that("data_relocate regex", {
expect_identical(
names(data_relocate(mtcars, select = "pg", regex = TRUE, after = "carb"))[11],
"mpg"
)
})
# fuzzy matching ------------------------------
out <- data.frame(
Parameter = "Test",
Median = 0.5,
CI_low = 0.4,
CI_high = 0.6,
pd = 0.97,
Rhat = 0.99,
ESS = 1000,
log_BF = 3,
stringsAsFactors = FALSE
)
test_that("data_relocate misspelled", {
# close match
expect_error(
data_relocate(out, "pd", before = "BF"),
"log_BF"
)
# close multiple matches
expect_error(
data_relocate(out, "pd", before = "CIl"),
"CI_low"
)
# not even close
expect_error(
data_relocate(out, "pd", before = "xyz"),
"misspelled"
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.