Nothing
message("TESTING: Object...")
library("R.oo")
obj <- Object()
print(obj)
obj <- Object(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
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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"))
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Save and load
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
obj <- Object()
obj$a <- 1
obj$b <- 2
pathnameT <- tempfile()
save(obj, file=pathnameT)
obj2 <- Object$load(pathnameT)
stopifnot(all.equal(getFields(obj2), getFields(obj)))
for (key in getFields(obj)) {
stopifnot(identical(obj2[[key]], obj[[key]]))
}
file.remove(pathnameT)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Class
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
obj2 <- newInstance(obj, 43L)
print(obj2)
stopifnot(obj2 == 43L)
hash <- hashCode(obj)
print(hash)
stopifnot(length(hash) == 1L)
neq <- equals(obj, 1)
print(neq)
stopifnot(!neq)
eq <- equals(obj, obj)
print(eq)
stopifnot(eq)
obj3 <- clone(obj)
print(obj3)
stopifnot(!identical(obj3, obj))
stopifnot(all.equal(obj3, obj))
message("TESTING: Object...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.