Rev 8506 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
###---- ALL tests here should return TRUE !######---- "Real" Arithmetic; Numerics etc --> ./arith-true.R### mode checking, etc.is.recursive(expression(1+3, 2/sqrt(pi)))# fix PR#9## any & all [PR#36]any(NA,na.rm=TRUE) == any(numeric(0))all(c(1,NA),na.rm=TRUE) == all(1)## sum():all(1:12 == cumsum(rep(1,12)))x <- rnorm(127); sx <- sum(x); abs((sum(rev(x)) -sx)) < 1e-12 * abs(sx)## seq():typeof(1:4) == "integer" #-- fails for 0.2, 0.3,.., 0.9all((0:6) == pi + ((-pi):pi))all((0:7) == (pi+seq(-pi,pi, len=8))*7/(2*pi))1 == as.integer(is.na(c(pi,NA)[2]))1 == as.integer(is.nan(0/0))## rev():cc <- c(1:10,10:1) ; all(cc == rev(cc))## dim[names]():all(names(c(a=pi, b=1, d=1:4)) == c("a","b", paste("d", 1:4, sep="")))##P names(c(a=pi, b=1, d=1:4))ncb <- dimnames(cbind(a=1, yy=1:3))[[2]](!is.null(ncb)) && all(ncb == c("a","yy"))all(cbind(a=1:2, b=1:3, c=1:6) == t(rbind(a=1:2, b=1:3, c=1:6)))##P rbind(a=1:2, b=1:3, c=1:6)all(dim(cbind(cbind(I=1,x=1:4), c(a=pi))) == 4:3)# fails in S+a <- b <- 1:3all(dimnames(cbind(a, b))[[2]] == c("a","b"))## rbind PR#338all(dim(m <- rbind(1:2, diag(2))) == 3:2)all(m == c(1,1,0, 2,0,1))## factor():is.factor(factor(list()))all(levels(ordered(rev(gl(3,4)))) == 1:3)# coercion to charall(levels(factor(factor(9:1)[3:5])) == 5:7)## crossing bug PR#40is.factor(ff <- gl(2,3) : gl(3,2)) && length(ff) == 6all(levels(ff) == t(outer(1:2, 1:3, paste, sep=":")))## from PR#5ll <- c("A","B"); ff <- factor(ll); f0 <- ff[, drop=TRUE]all(f0 == ff) && all(levels(ff) == ll) && is.factor(ff) && is.factor(f0)### data.frame s :## from lists [bug PR#100]x <- NULLx$x1 <- 1:10x$x2 <- 0:9all(dim(dx <- as.data.frame(x)) == c(10,2))## Logicals: (S is wrong)l1 <- c(TRUE,FALSE,TRUE)(! as.logical(as.data.frame(FALSE)[,1]))all(l1 == as.logical(as.data.frame(l1)[,1]))### Subsetting## bug PR#425x <- matrix(1:4, 2, 2, dimnames=list(c("abc","ab"), c("cde","cd")))y <- as.data.frame(x)all(x["ab",] == c(2,4))all(y["ab",] == c(2,4))## from bug PR#447x <- 1:2 ; x[c("2","2")] <- 4all.equal(x, c(1:2, "2" = 4))## stretchingl2 <- list(a=1, b=2)l2["cc"] <- pil2[["d"]] <- 4l2 $ e <- 55all.equal(l2, list(a = 1, b = 2, cc = pi, d = 4, e = 55), tol = 0)all.equal(l2["d"], list(d = 4))l2$d == 4 && l2$d == l2[["d"]]