HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Program Files/R/R-4.4.0/library/methods/tests/fieldAssignments.R
dt <- setRefClass("dt", fields = list(data = "environment", row.names = "character"))

ev <- new.env()

d1 <- dt$new(data = ev, row.names = letters)

stopifnot(identical(d1$data, ev),
          identical(d1$row.names, letters))

# an invalid class should generate an error
d2 <- tryCatch(dt$new(data = ev, row.names = 1:12), error = function(e)e)

stopifnot(is(d2, "error"),
          grepl("row.names", d2$message, fixed = TRUE),
          grepl("character", d2$message, fixed = TRUE),
          grepl("integer", d2$message, fixed = TRUE))

# a simple subclass should be used, unchanged

setClass("tagStrings", contains = "character",
         representation(tag = "Date"))

date1 <- as.Date("2010-01-15")

t1 <- new("tagStrings", letters, tag = date1)

d3 <- dt$new(data = ev, row.names = t1)

stopifnot(identical(d3$row.names, t1))