Nothing
context("pproto")
test_that("check that proto objects behave as expected", {
# initialize
proto <- proto::proto
p <- proto(a = 5)
p2 <- p$proto(b = 5)
# check that fields are correct
expect_equal(p$ls(), "a")
expect_equal(p$a, 5)
expect_equal(p2$ls(), "b")
expect_equal(p2$b, 5)
# update value
p$a <- 10
# check that a in both objects have become 10
expect_equal(p$a, 10)
expect_equal(p2$a, 10)
})
test_that("create new pproto", {
p <- pproto(a = 5)
expect_equal(p$ls(), "a")
expect_equal(p$a, 5)
})
test_that("create inherited proto with s3 fields", {
# initialize
p <- pproto(a = 5)
p2 <- pproto(NULL, p, b = 5)
# check that fields are correct
expect_equal(p$ls(), "a")
expect_equal(p$a, 5)
expect_equal(p2$ls(), c("a", "b"))
expect_equal(p2$a, 5)
expect_equal(p2$b, 5)
# update parent proto
p$a <- 7
# check that fields are correct
expect_equal(p$ls(), "a")
expect_equal(p$a, 7)
expect_equal(p2$ls(), c("a", "b"))
expect_equal(p2$a, 5)
expect_equal(p2$b, 5)
})
test_that("create inherited proto with proto fields", {
# initialize
p <- pproto("p", a = 1)
p2 <- pproto("p2", p, b = 2, c = p)
p3 <- pproto("p3", p, d = 3, f = p2)
# check that fields are correct
expect_equal(class(p), c("p", "pproto", "proto", "environment"))
expect_equal(p$ls(), "a")
expect_equal(p$a, 1)
expect_equal(class(p2), c("p2", "p", "pproto", "proto", "environment"))
expect_equal(p2$ls(), c("a", "b", "c"))
expect_equal(p2$a, 1)
expect_equal(p2$b, 2)
expect_equal(class(p2$c), c("p", "pproto", "proto", "environment"))
expect_equal(p2$c$a, 1)
expect_equal(class(p3), c("p3", "p", "pproto", "proto", "environment"))
expect_equal(p3$ls(), c("a", "d", "f"))
expect_equal(p3$a, 1)
expect_equal(p3$d, 3)
expect_equal(class(p3$f), c("p2", "p", "pproto", "proto", "environment"))
expect_equal(p3$f$a, 1)
expect_equal(p3$f$b, 2)
expect_equal(class(p3$f$c), c("p", "pproto", "proto", "environment"))
expect_equal(p3$f$c$a, 1)
# change p and check that values are correct
p$a <- 4
p2$b <- 5
# check that fields are correct
expect_equal(class(p), c("p", "pproto", "proto", "environment"))
expect_equal(p$ls(), "a")
expect_equal(p$a, 4)
expect_equal(class(p2), c("p2", "p", "pproto", "proto", "environment"))
expect_equal(p2$ls(), c("a", "b", "c"))
expect_equal(p2$a, 1)
expect_equal(p2$b, 5)
expect_equal(class(p2$c), c("p", "pproto", "proto", "environment"))
expect_equal(p2$c$a, 1)
expect_equal(class(p3), c("p3", "p", "pproto", "proto", "environment"))
expect_equal(p3$ls(), c("a", "d", "f"))
expect_equal(p3$a, 1)
expect_equal(p3$d, 3)
expect_equal(class(p3$f), c("p2", "p", "pproto", "proto", "environment"))
expect_equal(p3$f$a, 1)
expect_equal(p3$f$b, 2)
expect_equal(class(p3$f$c), c("p", "pproto", "proto", "environment"))
expect_equal(p3$f$c$a, 1)
})
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.