test_that("standard assignment", {
x %<-% 1
expect_equal(x, 1)
y %<-% list(1, 2, 3)
expect_equal(y, list(1, 2, 3))
1 %->% z
expect_equal(z, 1)
})
test_that("invisibly returns `value`", {
expect_equal((x %<-% 1), 1)
expect_equal(c(x, y) %<-% c(1, 2), c(1, 2))
})
test_that("multiple assignment", {
c(x, y) %<-% list(1, 2)
expect_equal(x, 1)
expect_equal(y, 2)
})
test_that("in-place assignment", {
l <- list()
c(l[[1]], l[[2]]) %<-% list(3, 4)
expect_equal(l[[1]], 3)
expect_equal(l[[2]], 4)
e <- new.env(parent = emptyenv())
c(e$hello) %<-% list("world")
expect_equal(e$hello, "world")
})
test_that("nested assignment", {
c(c(x, y), z) %<-% list(list(1, 2), 3)
expect_equal(x, 1)
expect_equal(y, 2)
expect_equal(z, 3)
})
test_that("skip value using .", {
c(x, ., z) %<-% list(1, 2, 3)
expect_equal(x, 1)
expect_equal(z, 3)
expect_false(exists(".", inherits = FALSE))
})
test_that("default values", {
c(x, y = 2) %<-% list(1)
expect_equal(x, 1)
expect_equal(y, 2)
c(x, y = 3, z = 4) %<-% list(2)
expect_equal(x, 2)
expect_equal(y, 3)
expect_equal(z, 4)
c(x, y = NULL) %<-% list(3)
expect_equal(x, 3)
expect_equal(y, NULL)
})
test_that("default values get ignored", {
c(x = 3, y = 4) %<-% list(1, 2)
expect_equal(x, 1)
expect_equal(y, 2)
})
test_that("assignment by name", {
c(y=) %<-% list(x = 1, y = 2)
expect_equal(y, 2)
c(y=, z=) %<-% list(x = 3, y = 4, z = 5)
expect_equal(y, 4)
expect_equal(z, 5)
})
test_that("assignment by name affects positional assignments", {
c(x=, y) %<-% list(y = 4, x = 2)
expect_equal(x, 2)
expect_equal(y, 2)
})
test_that("assign symbols", {
x %<-% quote(y)
c(y) %<-% list(quote(z))
expect_equal(x, quote(y))
expect_equal(y, quote(z))
})
test_that("assign NULL", {
x %<-% NULL
c(y) %<-% list(NULL)
expect_equal(x, NULL)
expect_equal(y, NULL)
})
test_that("positional variables expect values", {
expect_error(c(x, y) %<-% list(1), "missing value for variable `y`")
expect_error(c(x=, y) %<-% list(1), "missing value for variable `y")
})
test_that("trailing skip does nothing", {
c(x, .) %<-% list(1)
expect_equal(x, 1)
expect_error(., "object '.' not found")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.