tests/testthat/test_pca.R

test_that("can run a simple pca analysis", {
  mat1 <- matrix(rnorm(10*15), 10, 15)
  pres <- pca(mat1)
  
  proj <- project(pres, mat1)
  s <- scores(pres)
  
  expect_equal(proj ,s)
  expect_equal(sdev(pres)[1:length(pres$d)], svd(scale(mat1,center=TRUE, scale=FALSE))$d[1:length(pres$d)])
})

test_that("can project variables using pca result", {
  mat1 <- matrix(rnorm(10*15), 10, 15)
  pres <- pca(mat1)
  
  pv <- project_vars(pres, mat1)
  expect_equal(pv, coefficients(pres))
})

test_that("can run bootstrap analysis with 100 bootstraps", {
  mat1 <- matrix(rnorm(10*15), 10, 15)
  pres <- pca(mat1)
  
  bres <- bootstrap(pres, nboot=100)
  expect_true(length(bres) == 4)
})

test_that("can reconstruct a PCA and recover X", {
  mat1 <- matrix(rnorm(10*15), 10, 15)
  pres <- pca(mat1)
  
  recon <- reconstruct(pres)
  expect_true(all.equal(recon, mat1))
})

test_that("can compute pca residuals", {
  mat1 <- matrix(rnorm(10*15), 10, 15)
  pres <- pca(mat1, ncomp=2)
  
  recon <- residuals(pres, 2, mat1)
  expect_true(all.equal(dim(recon), dim(mat1)))
})


test_that("can truncate a pca", {
  mat1 <- matrix(rnorm(10*15), 10, 15)
  pres <- pca(mat1, ncomp=4)
  pres2 <- truncate(pres, 2)

  expect_true(ncomp(pres2) == 2)
})

test_that("can compute permutation confidence intervals", {
  mat1 <- matrix(rnorm(10*15), 10, 15)
  pres <- pca(mat1, ncomp=4)
  pci <- perm_ci(pres, mat1, 100)
  expect_true(!is.null(pci))
})
bbuchsbaum/multivarious documentation built on May 15, 2024, 7:25 a.m.