Nothing
context("Adding subvariables")
with_mock_crunch({
ds <- cachedLoadDataset("test ds")
test_that("Adding an existing var to an array", {
expect_PATCH(
addSubvariable(ds$mymrset, ds$gender),
"https://app.crunch.io/api/datasets/1/variables/mymrset/subvariables/"
)
})
test_that("Adding a VarDef as a subvar to an array", {
vd <- VariableDefinition(factor("1.0"), name = "doggy daycare")
expect_POST(
addSubvariable(ds$mymrset, vd),
"https://app.crunch.io/api/datasets/1/variables/"
)
})
test_that("Can't add subvariables to a non-array", {
expect_error(addSubvariable(ds$birthyr, ds$gender),
"is.Array(variable) is not TRUE",
fixed = TRUE
)
})
})
with_test_authentication({
ds <- newDatasetFromFixture("apidocs")
test_that("Adding a subvariable to an array", {
ds$petloc_daycare <- VariableDefinition(factor(rep(c(
"Cat",
"Dog"
), 10)), name = "doggy daycare")
expect_identical(
names(subvariables(ds$petloc)),
c("Home", "Work")
)
expect_true("petloc_daycare" %in% aliases(variables(ds)))
ds$petloc <- addSubvariable(ds$petloc, ds$petloc_daycare)
expect_identical(
names(subvariables(ds$petloc)),
c("Home", "Work", "doggy daycare")
)
})
test_that("Add more than one subvariable to an array", {
expect_identical(
names(subvariables(ds$allpets)),
c("Cat", "Dog", "Bird")
)
ds$allpets_7 <- copy(ds$allpets$allpets_1, deep = TRUE, name = "Turtle")
ds$allpets_8 <- copy(ds$allpets$allpets_2, deep = TRUE, name = "Gerbil")
ds$allpets <- addSubvariables(ds$allpets, list(ds$allpets_7, ds$allpets_8))
expect_identical(
names(subvariables(ds$allpets)),
c("Cat", "Dog", "Bird", "Turtle", "Gerbil")
)
ds$allpets_12 <- copy(ds$allpets$allpets_1, deep = TRUE, name = "Coyote")
ds$allpets_13 <- copy(ds$allpets$allpets_2, deep = TRUE, name = "Cockroach")
ds$allpets <- addSubvariables(ds$allpets, ds[c("allpets_12", "allpets_13")])
expect_identical(
names(subvariables(ds$allpets)),
c("Cat", "Dog", "Bird", "Turtle", "Gerbil", "Coyote", "Cockroach")
)
})
ds <- refresh(ds)
test_that("Variable definitions can be added to an array", {
sub1 <- toVariable(factor(seq_len(nrow(ds))), name = "Ant")
ds$allpets <- addSubvariables(ds$allpets, sub1)
expect_true("Ant" %in% names(subvariables(ds$allpets)))
sub2 <- toVariable(factor(seq_len(nrow(ds))), name = "Bee")
sub3 <- toVariable(factor(seq_len(nrow(ds))), name = "Mosquito")
ds$allpets <- addSubvariables(ds$allpets, list(sub2, sub3))
expect_identical(
names(subvariables(ds$allpets)),
c(
"Cat", "Dog", "Bird", "Turtle", "Gerbil", "Coyote", "Cockroach",
"Ant", "Bee", "Mosquito"
)
)
sub4 <- toVariable(factor(seq_len(nrow(ds))), name = "Fly")
ds$Aphid <- factor(seq_len(nrow(ds)))
ds$allpets <- addSubvariable(ds$allpets, list(sub4, ds$Aphid))
expect_identical(
names(subvariables(ds$allpets)),
c(
"Cat", "Dog", "Bird", "Turtle", "Gerbil", "Coyote", "Cockroach",
"Ant", "Bee", "Mosquito", "Fly", "Aphid"
)
)
})
})
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.