Nothing
library(pcaone)
#Set seed
set.seed(1234)
#*************************************************************************************
# Test: pcaone using real random test matrix
#*************************************************************************************
#Create real random test matrix of dimension m x n with target rank k
m <- 50
n <- 30
k <- 10
testMat <- matrix(runif(m*k), m, k)
testMat <- testMat %*% t(testMat)
testMat <- testMat[,1:n]
#Deterministic SVD
svd_out <- svd(testMat)
#Randomized SVD k=n
rsvd_out <- pcaone(testMat, k = n, p = 0, method = "alg1")
testMat.re <- rsvd_out$u %*% diag(rsvd_out$d) %*% t(rsvd_out$v)
testthat::test_that("Test 1: PCAoneYu k=n", {
testthat::expect_equal(svd_out$d, rsvd_out$d)
testthat::expect_equal(testMat, testMat.re)
})
#Randomized SVD k=k
rsvd_out <- pcaone(testMat, k = k, p = 0, q = 0, method = "alg1")
testMat.re <- rsvd_out$u %*% diag(rsvd_out$d) %*% t(rsvd_out$v)
testthat::test_that("Test 2: PCAoneYu k=k, p=0, q=0", {
testthat::expect_equal(svd_out$d[1:k], rsvd_out$d[1:k])
testthat::expect_equal(testMat, testMat.re)
})
#*************************************************************************************
# Test : testMat.T
#*************************************************************************************
testMat <- t(testMat)
#Deterministic SVD
svd_out <- svd(testMat)
#Randomized SVD k=n
rsvd_out <- pcaone(testMat, k = n, p = 3, q = 10, method = "alg1")
testMat.re = rsvd_out$u %*% diag(rsvd_out$d) %*% t(rsvd_out$v)
testthat::test_that("Test 1: PCAoneAlg1 k=n", {
testthat::expect_equal(svd_out$d, rsvd_out$d)
testthat::expect_equal(testMat, testMat.re)
})
#Randomized SVD k=k
rsvd_out <- pcaone(testMat, k = k, p = 2, q = 0, method = "alg1")
testMat.re = rsvd_out$u %*% diag(rsvd_out$d) %*% t(rsvd_out$v)
testthat::test_that("Test 2: PCAoneAlg1 k=k, p=0, q=0", {
testthat::expect_equal(svd_out$d[1:k], rsvd_out$d[1:k])
testthat::expect_equal(testMat, testMat.re)
})
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.