diff options
Diffstat (limited to 'Examples/test-suite/r/r_copy_struct_runme.R')
-rw-r--r-- | Examples/test-suite/r/r_copy_struct_runme.R | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/Examples/test-suite/r/r_copy_struct_runme.R b/Examples/test-suite/r/r_copy_struct_runme.R new file mode 100644 index 000000000..21bd93b64 --- /dev/null +++ b/Examples/test-suite/r/r_copy_struct_runme.R @@ -0,0 +1,58 @@ +source("unittest.R") +dyn.load(paste("r_copy_struct", .Platform$dynlib.ext, sep="")) +source("r_copy_struct.R") +cacheMetaData(1) + +a <- getA() + +r = getARef() + +unittest(A_d_get(r), 42) +unittest(r$d, 42) +unittest(r$i, 20) + +# An error in trying to access a field that doesn't exist. +try(r$foo) + +r$d <- pi +unittesttol(r$d, 3.141593, 0.0001) +r$i <- -100 + +r$ui +r$ui <- 10 + + # An error since i is unsigned and so must be positive. +try(r$ui <- -10) + + +a = A() +unittest(a$i,0) +unittest(a$d,0) +unittest(a$ui,0) +a$ui <- 100 +unittest(a$ui,100) +a$d = 1 +unittest(a$d,1) + +d <- bar() +unittest(class(d), "_p_D") +unittest(d$x, 1) +unittest(d$u, 0) + + +la <- new("A"); +la@ui <- as.integer(5) +# Removing the next line makes this fail in R 2.4 +la@str <- "" + +other = A() +foo <- copyToC(la, other) + +aa = A() +aa$i = as.integer(201) +aa$d = pi +aa$str = "foo" +aa$ui = as.integer(0) +copyToR(aa) + + |