Nothing
#'
#' Header for all (concatenated) test files
#'
#' Require spatstat.geom
#' Obtain environment variable controlling tests.
#'
#' $Revision: 1.5 $ $Date: 2020/04/30 05:31:37 $
require(spatstat.geom)
FULLTEST <- (nchar(Sys.getenv("SPATSTAT_TEST", unset="")) > 0)
ALWAYS <- TRUE
cat(paste("--------- Executing",
if(FULLTEST) "** ALL **" else "**RESTRICTED** subset of",
"test code -----------\n"))
#
# tests/hyperframe.R
#
# test "[.hyperframe" etc
#
# $Revision: 1.11 $ $Date: 2023/02/03 06:17:16 $
#
if(FULLTEST) {
local({
lambda <- runif(4, min=50, max=100)
X <- lapply(as.list(lambda), function(x) { runifrect(rpois(1, x)) })
h <- hyperframe(lambda=lambda, X=X)
h$lambda2 <- lambda^2
h[, "lambda3"] <- lambda^3
h[, "Y"] <- X
h[, "X"] <- lapply(X, flipxy)
h[, c("X", "Y")] <- hyperframe(X=X, Y=X)
names(h) <- LETTERS[1:5]
print(h)
summary(h)
str(h)
head(h)
tail(h)
rn <- rownames(h)
r.n <- row.names(h)
if(!identical(rn, r.n))
stop("rownames and row.names conflict for hyperframes")
dn <- dimnames(h)
dimnames(h) <- dn
dimnames(h)[[2]][2] <- "copacetic"
dimnames(h)[[1]][2] <- "second"
#' hyperframe with a hyperatom
H <- hyperframe(A=runif(3), B=1:3, D=runifrect(10))
H[,3]
H[,3,drop=TRUE]
#' special cases of [<-
H$B <- H[,1]
H[2:3,1] <- H[2:3,2]
H[2:3,1] <- H[2,2]
H[2,1:2] <- H[3,1:2]
#' split
f <- factor(c("a", "a", "b"))
G <- split(H, f)
G[["a"]]$B <- 42
split(H, f) <- G
#' [[ and [[<-
junk <- pyramidal
a <- junk[["group"]]
junk[["group"]] <- sample(a)
a <- junk[[2]]
a <- junk[[15,2]]
junk[[15,2]] <- "schizoaffective"
junk[[15,2]] <- "z" # Warning given.
a <- junk[[2]] # The warned-about NA appears as entry 15.
junk[[10,1]] <- cells
a <- junk[[10,1]]
a <- junk[[10,"Neurons"]]
})
}
#
# tests/imageops.R
#
# $Revision: 1.43 $ $Date: 2023/08/29 01:03:59 $
#
if(ALWAYS) {
local({
#' Test of case 'CONNECT=24' in src/distmapbin.[ch]
#' Distance transform with 24-connected neighbours
A <- distmap(heather$coarse, connect=24)
})
}
if(FULLTEST) {
local({
#' cases of 'im' data
tab <- table(sample(factor(letters[1:10]), 30, replace=TRUE))
b <- im(tab, xrange=c(0,1), yrange=c(0,10))
b <- update(b)
mat <- matrix(sample(0:4, 12, replace=TRUE), 3, 4)
a <- im(mat)
levels(a$v) <- 0:4
a <- update(a)
levels(mat) <- 0:4
b <- im(mat)
b <- update(b)
D <- as.im(mat, letterR)
df <- as.data.frame(D)
DD <- as.im(df, step=c(D$xstep, D$ystep))
#' various manipulations
AA <- A <- as.im(owin())
BB <- B <- as.im(owin(c(1.1, 1.9), c(0,1)))
Z <- imcov(A, B)
stopifnot(abs(max(Z) - 0.8) < 0.1)
Frame(AA) <- Frame(B)
Frame(BB) <- Frame(A)
## handling images with 1 row or column
ycov <- function(x, y) y
E <- as.im(ycov, owin(), dimyx = c(2,1))
G <- cut(E, 2)
H <- as.tess(G)
E12 <- as.im(ycov, owin(), dimyx = c(1,2))
G12 <- cut(E12, 2)
H12 <- as.tess(G12)
AAA <- as.array(AA)
EEE <- as.array(E)
AAD <- as.double(AA)
EED <- as.double(E)
aaa <- xtfrm(AAA)
eee <- xtfrm(E)
##
d <- distmap(cells, dimyx=32)
D6 <- (d <= 0.06)
Z <- connected(D6, method="interpreted")
Z <- connected(D6, connect=4)
Z <- connected(D6, method="interpreted", connect=4)
a <- where.max(d, first=FALSE)
a <- where.min(d, first=FALSE)
dx <- raster.x(d)
dy <- raster.y(d)
dxy <- raster.xy(d)
xyZ <- raster.xy(Z, drop=TRUE)
horosho <- conform.imagelist(cells, list(d, Z))
#' split.im
W <- square(1)
X <- as.im(function(x,y){x}, W)
Y <- dirichlet(runifrect(7, W))
Z <- split(X, as.im(Y))
## ........... cases of "[.im" ........................
## index window has zero overlap area with image window
Out <- owin(c(-0.5, 0), c(0,1))
oo <- X[Out]
oo <- X[Out, drop=FALSE]
if(!is.im(oo)) stop("Wrong format in [.im with disjoint index window")
oon <- X[Out, drop=TRUE, rescue=FALSE]
if(is.im(oon)) stop("Expected a vector of values, not an image, from [.im")
if(!all(is.na(oon))) stop("Expected a vector of NA values in [.im")
##
Empty <- cells[FALSE]
ff <- d[Empty]
gg <- d[2,]
gg <- d[,2]
gg <- d[j=2]
gg <- d[2:4, 3:5]
hh <- d[2:4, 3:5, rescue=TRUE]
if(!is.im(hh)) stop("rectangle was not rescued in [.im")
## factor and NA values
f <- cut(d, breaks=4)
f <- f[f != levels(f)[1], drop=FALSE]
fff <- f[, , drop=FALSE]
fff <- f[cells]
fff <- f[cells, drop=FALSE]
fff <- f[Empty]
## ........... cases of "[<-.im" .......................
d[,] <- d[] + 1
d[Empty] <- 42
## smudge() and rasterfilter()
dd <- smudge(d)
## rgb/hsv options
X <- setcov(owin())
M <- Window(X)
Y <- as.im(function(x,y) x, W=M)
Z <- as.im(function(x,y) y, W=M)
# convert after rescaling
RGBscal <- rgbim(X, Y, Z, autoscale=TRUE, maxColorValue=1)
HSVscal <- hsvim(X, Y, Z, autoscale=TRUE)
#' cases of [.im
Ma <- as.mask(M, dimyx=37)
ZM <- Z[raster=Ma, drop=FALSE]
ZM[solutionset(Y+Z > 0.4)] <- NA
ZF <- cut(ZM, breaks=5)
ZL <- (ZM > 0)
P <- list(x=c(0.511, 0.774, 0.633, 0.248, 0.798),
y=c(0.791, 0.608, 0.337, 0.613, 0.819))
zmp <- ZM[P, drop=TRUE]
zfp <- ZF[P, drop=TRUE]
zlp <- ZL[P, drop=TRUE]
P <- as.ppp(P, owin())
zmp <- ZM[P, drop=TRUE]
zfp <- ZF[P, drop=TRUE]
zlp <- ZL[P, drop=TRUE]
#' miscellaneous
ZZ <- zapsmall.im(Z, digits=6)
ZZ <- zapsmall.im(Z)
ZS <- shift(Z, origin="centroid")
ZS <- shift(Z, origin="bottomleft")
ZA <- affine(Z, mat=diag(c(-1,-2)))
U <- scaletointerval(Z)
C <- as.im(1, W=U)
U <- scaletointerval(C)
#' hist.im
h <- hist(Z)
h <- hist(Z, probability=TRUE)
h <- hist(Z, plot=FALSE)
Zcut <- cut(Z, breaks=5)
h <- hist(Zcut) # barplot
hp <- hist(Zcut, probability=TRUE) # barplot
plot(h) # plot.barplotdata
#' plot.im code blocks
plot(Z, ribside="left")
plot(Z, ribside="top")
plot(Z, riblab="value")
plot(Z, clipwin=square(0.5))
plot(Z - mean(Z), log=TRUE)
plot(Z, valuesAreColours=TRUE) # rejected with a warning
IX <- as.im(function(x,y) { as.integer(round(3*x)) }, square(1))
co <- colourmap(rainbow(4), inputs=0:3)
plot(IX, col=co)
CX <- eval.im(col2hex(IX+1L))
plot(CX, valuesAreColours=TRUE)
plot(CX, valuesAreColours=FALSE)
#' plot.im contour code logarithmic case
V0 <- setcov(owin())
V2 <- exp(2*V0+1)
plot(V2, log=TRUE, addcontour=TRUE, contourargs=list(col="white"))
plot(V2, log=TRUE, addcontour=TRUE, contourargs=list(col="white", nlevels=2))
plot(V2, log=TRUE, addcontour=TRUE, contourargs=list(col="white", nlevels=20))
V4 <- exp(4*V0+1)
plot(V4, log=TRUE, addcontour=TRUE, contourargs=list(col="white"))
plot(V4, log=TRUE, addcontour=TRUE, contourargs=list(col="white", nlevels=2))
plot(V4, log=TRUE, addcontour=TRUE, contourargs=list(col="white", nlevels=20))
#' pairs.im
pairs(solist(Z))
pairs(solist(A=Z))
#' handling and plotting of character and factor images
Afactor <- as.im(col2hex("green"), letterR, na.replace=col2hex("blue"))
Acharacter <- as.im(col2hex("green"), letterR, na.replace=col2hex("blue"),
stringsAsFactors=FALSE)
plot(Afactor)
plot(Acharacter, valuesAreColours=TRUE)
print(summary(Afactor))
print(summary(Acharacter))
#' substitute for runifpoint
rup <- function(n, W) { runifrect(n, Frame(W))[W] }
#' safelookup (including extrapolation case)
Z <- as.im(function(x,y) { x - y }, letterR)
Zcut <- cut(Z, breaks=4)
B <- grow.rectangle(Frame(letterR), 1)
X <- superimpose(rup(10, letterR),
rup(20, setminus.owin(B, letterR)),
vertices(Frame(B)),
W=B)
a <- safelookup(Z, X)
aa <- safelookup(Z, X, factor=100)
b <- safelookup(Zcut, X)
bb <- safelookup(Zcut, X, factor=100)
cc <- lookup.im(Z, X)
#' im.apply
Z <- im.apply(bei.extra, sd)
#' Math.imlist, Ops.imlist, Complex.imlist
U <- Z+2i
B <- U * (2+1i)
print(summary(B))
V <- solist(A=U, B=B)
negV <- -V
E <- Re(V)
negE <- -E
})
}
if(ALWAYS) {
local({
#' check nearest.valid.pixel
W <- Window(demopat)
set.seed(911911)
X <- runifrect(1000, Frame(W))[W]
Z <- quantess(W, function(x,y) { x }, 9)$image
nearest.valid.pixel(numeric(0), numeric(0), Z)
x <- X$x
y <- X$y
a <- nearest.valid.pixel(x, y, Z, method="interpreted")
b <- nearest.valid.pixel(x, y, Z, method="C")
if(!isTRUE(all.equal(a,b)))
stop("Unequal results in nearest.valid.pixel")
if(!identical(a,b))
stop("Equal, but not identical, results in nearest.valid.pixel")
})
}
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.