test_that("grid search returns correct structure", { set.seed(1) n <- 10 T_len <- 6 X <- list( lapply(seq_len(n), function(i) matrix(rnorm(T_len * 3), T_len, 3)), lapply(seq_len(n), function(i) matrix(rnorm(T_len * 2), T_len, 2)) ) res <- mcca_grid_search( method = "kernel", X = X, eps_grid = c(1e-3, 1e-2), gamma_grid = c(0.1, 1), ncomp_eval = 2 ) expect_true(is.list(res)) expect_true("results" %in% names(res)) expect_true("best_fit" %in% names(res)) expect_true("best_row" %in% names(res)) expect_s3_class(res$best_fit, "mcca_fit") })