Nothing
test_that("rrda.cv returns expected structure", {
set.seed(123)
X <- matrix(rnorm(100 * 50), nrow = 100)
Y <- matrix(rnorm(100 * 20), nrow = 100)
result <- rrda.cv(Y = Y, X = X, maxrank = 5, nfold = 3, verbose = FALSE)
expect_type(result, "list")
expect_true(all(c("MSE", "SEM", "rank", "lambda", "opt_min", "opt_lambda.1se", "opt_rank.1se") %in% names(result)))
expect_true(is.data.frame(result$MSE))
expect_true(is.data.frame(result$SEM))
expect_true(is.numeric(result$rank))
expect_true(is.numeric(result$lambda))
})
test_that("rrda.cv returns proper optimal values", {
set.seed(456)
X <- matrix(rnorm(60 * 30), nrow = 60)
Y <- matrix(rnorm(60 * 10), nrow = 60)
result <- rrda.cv(Y = Y, X = X, maxrank = 3, nfold = 2, verbose = FALSE)
expect_true(is.list(result$opt_min))
expect_true(is.numeric(result$opt_min$rank))
expect_true(is.numeric(result$opt_min$lambda))
})
test_that("rrda.cv throws error with negative lambda", {
set.seed(789)
X <- matrix(rnorm(50 * 20), nrow = 50)
Y <- matrix(rnorm(50 * 10), nrow = 50)
expect_error(rrda.cv(Y = Y, X = X, lambda = c(-0.1, 0.2), maxrank = 2, nfold = 2, verbose = FALSE))
})
test_that("rrda.cv handles rank too large with warning", {
X <- matrix(rnorm(50 * 10), nrow = 50)
Y <- matrix(rnorm(50 * 8), nrow = 50)
expect_warning({
result <- rrda.cv(Y = Y, X = X, maxrank = 100, nfold = 2, verbose = FALSE)
})
expect_true(result$opt_min$rank <= min(dim(X), dim(Y)))
})
test_that("rrda.cv throws error for nfold < 2", {
sim <- rdasim1(n = 30, p = 10, q = 5, k = 2)
X <- sim$X
Y <- sim$Y
expect_error(rrda.cv(Y = Y, X = X, nfold = 1),
"nfold must be at least 2")
})
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.