Nothing
test_that("address of expression varies", {
a <- obj_addr(1:10)
b <- obj_addr(1:10)
expect_false(identical(a, b))
})
test_that("address of variable is constant", {
x <- 1:10
expect_equal(obj_addr(x), obj_addr(x))
})
test_that("address flows through function wrappers", {
x <- 1:10
f <- function(x) obj_addr(x)
g <- function(y) f(y)
h <- function(z) g(z)
address <- obj_addr(x)
expect_equal(f(x), address)
expect_equal(g(x), address)
expect_equal(h(x), address)
})
# addresses ---------------------------------------------------------------
test_that("can find addresses of list elements", {
x <- 1:3
y <- 1:3
addr <- c(obj_addr(x), obj_addr(y))
l <- list(x, y)
expect_equal(obj_addrs(l), addr)
})
test_that("can find addresses of environment elements", {
x <- 1:3
y <- 1:3
addr <- c(obj_addr(x), obj_addr(y))
e1 <- new.env(hash = TRUE)
e1$x <- x
e1$y <- y
expect_setequal(obj_addrs(e1), addr)
e2 <- new.env(hash = FALSE)
e2$x <- x
e2$y <- y
expect_setequal(obj_addrs(e2), addr)
})
test_that("address of character vectors points to global string pool", {
addr <- obj_addrs(c("a", "a", "a"))
expect_equal(addr[[1]], addr[[2]])
})
test_that("addresses of other elements throws errors", {
expect_error(obj_addrs(1:10), "must be a list")
})
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.