# tests/testthat/test-laplaceapproximation.R In fido: Bayesian Multinomial Logistic Normal Regression

```context("test-laplaceapproximation")

test_that("eigen_lap gets correct answer", {
n_samples <- 100000
m <- 1:3
S <- diag(4:6)
S[1,2] <- S[2,1] <- -1
#S <- -S
z <- eigen_lap_test(n_samples, m, S, 0)

expect_equal(var(t(z)), solve(S), tolerance=0.005)
expect_equal(rowMeans(z), m, tolerance=.01)
})

test_that("cholesky_lap gets correct answer", {
n_samples <- 100000
m <- 1:3
S <- diag(4:6)
S[1,2] <- S[2,1] <- -1
#S <- -S
z <- eigen_lap_test(n_samples, m, S, 0)

expect_equal(var(t(z)), solve(S), tolerance=0.005)
expect_equal(rowMeans(z), m, tolerance=.01)
})

test_that("LaplaceApproximation gets correct result for full hessian", {
n_samples <- 1000000
m <- 1:3
S <- diag(1:3)
S[1,2] <- S[2,1] <- -1
#S <- -S

z <- LaplaceApproximation_test(n_samples, m, S, "eigen", 0)
expect_equal(var(t(z)), solve(S), tolerance=0.005)
expect_equal(rowMeans(z), m, tolerance=.01)

z <- LaplaceApproximation_test(n_samples, m, S, "cholesky", 0)
expect_equal(var(t(z)), solve(S), tolerance=0.005)
expect_equal(rowMeans(z), m, tolerance=.01)
})
```

## Try the fido package in your browser

Any scripts or data that you put into this service are public.

fido documentation built on June 22, 2024, 9:36 a.m.