Nothing
context("error reporting")
p <- 4
rseed <- 10010
set.seed(rseed)
dat <- huge::huge.generator(p*5, p, "hub", verbose=FALSE, v=.4, u=.2)
set.seed(rseed)
X <- MASS::mvrnorm(p*5, mu=rep(0,p), Sigma=dat$sigma, empirical=TRUE)
X[4,] <- NA ## sample 4 not in first two subsamples, given rseed
# TODO: test only a subset of jobs failing
huge_error <- function(data, lambda, f=stop, ...) {
if (any(is.na(data))) {
f('NA detected in data', call.=FALSE)
}
return(huge::huge(na.exclude(data), lambda=lambda, ...))
}
filter_warning <- function(expr, regxpr) {
withCallingHandlers(
force(expr),
warning=function(w) {
if (grepl(regxpr, w$message))
invokeRestart("muffleWarning")
} )
}
hargs <- list(lambda=getLamPath(1, .005, 10), verbose=FALSE, f=stop)
test_that("Job stops when every parallel job has errors", {
expect_error(
pulsar(X, fun=huge_error, hargs, ncores=1, subsample.ratio=1, seed=rseed,
rep.num=8, refit=FALSE),
regexp = "NA")
expect_error(
pulsar(X, fun=huge_error, hargs, ncores=1, subsample.ratio=1, seed=rseed,
rep.num=8, refit=FALSE, lb.stars=TRUE),
regexp = "NA")
skip_on_os("windows")
expect_error(
pulsar(X, fun=huge_error, hargs, ncores=2, subsample.ratio=1, seed=rseed,
rep.num=8, refit=FALSE),
regexp = "NA")
skip_on_os("windows")
expect_error(
pulsar(X, fun=huge_error, hargs, ncores=2, subsample.ratio=1, seed=rseed,
rep.num=8, refit=FALSE, lb.stars=TRUE),
regexp = "NA")
})
test_that("Job continues when subset of parallel jobs have errors/warnings", {
hargs$f <- stop
expect_error(
pulsar(X, fun=huge_error, hargs, ncores=1, subsample.ratio=.5, seed=rseed,
rep.num=8, refit=FALSE),
regexp = "NA")
expect_error(
pulsar(X, fun=huge_error, hargs, ncores=1, subsample.ratio=.5, seed=rseed,
rep.num=8, refit=FALSE, lb.stars=TRUE),
regexp = "NA")
skip_on_os("windows")
expect_warning(
filter_warning(
out1 <- pulsar(X, fun=huge_error, hargs, ncores=2, subsample.ratio=.5,
seed=rseed, rep.num=8, refit=FALSE), "Optimal lambda"),
regexp = "NA")
skip_on_os("windows")
expect_warning(
filter_warning(
out2 <- pulsar(X, fun=huge_error, hargs, ncores=2, subsample.ratio=.5,
seed=rseed, rep.num=8, refit=FALSE, lb.stars=TRUE),
"Optimal lambda"),
regexp = "NA")
expect_equivalent(out1$stars$opt.ind, out2$stars$opt.ind)
hargs$f <- warning
expect_warning(
filter_warning(
out1 <- pulsar(X, fun=huge_error, hargs, ncores=1, subsample.ratio=.5,
seed=rseed, rep.num=8, refit=FALSE), "Optimal lambda"),
regexp = "NA")
expect_warning(
filter_warning(
out2 <- pulsar(X, fun=huge_error, hargs, ncores=1, subsample.ratio=.5,
seed=rseed, rep.num=8, refit=FALSE, lb.stars=TRUE),
"Optimal lambda"),
regexp = "NA")
expect_equivalent(out1$stars$opt.ind, out2$stars$opt.ind)
})
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.