Rev 63138 | Rev 63306 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
## Regression tests for R >= 3.0.0pdf("reg-tests-1c.pdf", encoding = "ISOLatin1.enc")## mapply with classed objects with length method## was not documented to work in 2.x.ysetClass("A", representation(aa = "integer"))a <- new("A", aa = 101:106)setMethod("length", "A", function(x) length(x@aa))setMethod("[[", "A", function(x, i, j, ...) x@aa[[i]])(z <- mapply(function(x, y) {x * y}, a, rep(1:3, 2)))stopifnot(z == c(101, 204, 309, 104, 210, 318))## reported as a bug (which it was not) by H. Pages in## https://stat.ethz.ch/pipermail/r-devel/2012-November/065229.html## recyling in split()## https://stat.ethz.ch/pipermail/r-devel/2013-January/065700.htmlx <- 1:6y <- split(x, 1:2)class(x) <- "A"yy <- split(x, 1:2)stopifnot(identical(y, yy))## were different in R < 3.0.0## dates with fractional seconds after 2038 (PR#15200)## Extremely speculative!z <- as.POSIXct(2^31+c(0.4, 0.8), origin=ISOdatetime(1970,1,1,0,0,0,tz="GMT"))zz <- format(z)stopifnot(zz[1] == zz[2])## printed form rounded not truncated in R < 3.0.0## origin coerced in tz and not GMT by as.POSIXct.numeric()x <- as.POSIXct(1262304000, origin="1970-01-01", tz="EST")y <- as.POSIXct(1262304000, origin=.POSIXct(0, "GMT"), tz="EST")stopifnot(identical(x, y))## Handling records with quotes in namesx <- c("a b' c","'d e' f g","h i 'j","k l m'")y <- data.frame(V1 = c("a", "d e", "h"), V2 = c("b'", "f", "i"), V3 = c("c", "g", "j\nk l m"))f <- tempfile()writeLines(x, f)stopifnot(identical(count.fields(f), c(3L, 3L, NA_integer_, 3L)))stopifnot(identical(read.table(f), y))stopifnot(identical(scan(f, ""), as.character(t(as.matrix(y)))))## docu always said 'length 1 is sorted':stopifnot(!is.unsorted(NA))## str(.) for large factors should be fast:u <- as.character(runif(1e5))t1 <- max(0.001, system.time(str(u))[[1]]) # get a baseline > 0uf <- factor(u)(t2 <- system.time(str(uf))[[1]]) / t1 # typically around 1--2stopifnot(t2 / t1 < 20)## was around 600--850 for R <= 3.0.1## ftable(<array with unusual dimnames>)(m <- matrix(1:12, 3,4, dimnames=list(ROWS=paste0("row",1:3), COLS=NULL)))ftable(m)## failed to format (and hence print) because of NULL 'COLS' dimnames## regression test formerly in kmeans.Rd, but result differs by platform## Artificial example [was "infinite loop" on x86_64; PR#15364]rr <- c(rep(-0.4, 5), rep(-0.4- 1.11e-16, 14), -.5)r. <- signif(rr, 12)try ( k3 <- kmeans(rr, 3, trace=2) ) ## Warning: Quick-Transfer.. steps exceedtry ( k. <- kmeans(r., 3) ) # after rounding, have only two distinct pointsk. <- kmeans(r., 2) # fine## regression test incorrectly in example(NA)xx <- c(0:4)is.na(xx) <- c(2, 4)LL <- list(1:5, c(NA, 5:8), c("A","NA"), c("a", NA_character_))L2 <- LL[c(1,3)]dN <- dd <- USJudgeRatings; dN[3,6] <- NAstopifnot(anyNA(xx), anyNA(LL), !anyNA(L2),anyNA(dN), !anyNA(dd), !any(is.na(dd)),all(c(3,6) == which(is.na(dN), arr.ind=TRUE)))proc.time()