Nothing
message("TESTING: BasicObject...")
library("R.oo")
obj <- BasicObject()
print(obj)
obj <- BasicObject(42L)
print(obj)
stopifnot(obj == 42L)
obj$a <- 1:99
print(obj)
fields <- getFields(obj)
print(fields)
hasA <- hasField(obj, "a")
print(hasA)
stopifnot(hasA)
value <- obj$a
str(value)
stopifnot(identical(value, 1:99))
obj$a <- 1:100
print(obj)
value <- obj[["a"]]
str(value)
stopifnot(identical(value, 1:100))
obj[["a"]] <- 1:101
print(obj)
value <- obj[["a"]]
str(value)
stopifnot(identical(value, 1:101))
size <- objectSize(obj)
print(size)
ref <- isReferable(obj)
print(ref)
stopifnot(isTRUE(ref))
time <- getInstantiationTime(obj)
print(time)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Attach and detach
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
obj <- BasicObject(42L)
obj$a <- 1:99
res <- attach(obj)
print(res)
stopifnot(exists("a", mode="integer"))
str(a)
## Object already attached
res <- tryCatch(attach(obj), warning=function(w) w)
stopifnot(inherits(res, "warning"))
res <- detach(obj)
print(res)
## Object already detached
res <- tryCatch(detach(obj), warning=function(w) w)
stopifnot(inherits(res, "warning"))
obj <- BasicObject(list(a=1L, b=2, c=3))
res <- attach(obj)
print(res)
stopifnot(exists("a", mode="integer"))
str(a)
res <- detach(obj)
print(res)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Class
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
obj2 <- newInstance(obj, 43L)
print(obj2)
stopifnot(obj2 == 43L)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Inheritance
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
setConstructorS3("MyObject", function(...) {
extend(BasicObject(), "MyObject", ...)
})
obj <- MyObject(a=1, b=2)
print(obj)
str(obj)
stopifnot(all(c("a", "b") %in% names(attributes(obj))))
setMethodS3("foo", "MyObject", function(static, x=1L, ...) {
list(x=x, ...)
}, static=TRUE)
res <- MyObject$foo(y=2L)
stopifnot(identical(res$x, 1L))
stopifnot(identical(res$y, 2L))
obj$a <- 3
print(obj)
value <- obj[["a"]]
str(value)
stopifnot(identical(value, 3))
obj[["a"]] <- 4
print(obj)
value <- obj$a
str(value)
stopifnot(identical(value, 4))
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# FIXME: hashCode() return integer(0) whenever
# getInstantiationTime() returns NULL, which is
# now the default behavior of BasicObject
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
hash <- hashCode(obj)
print(hash)
## FIXME: Currently returns integer(0)
## stopifnot(length(hash) == 1L)
neq <- equals(obj, 1)
print(neq)
## FIXME: Currently returns NA
## stopifnot(!neq)
eq <- equals(obj, obj)
print(eq)
## FIXME: Currently returns NA
## stopifnot(eq)
message("TESTING: BasicObject...DONE")
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.