Nothing
context("tests of posterior methods")
library(dplyr)
dtm <- nih_sample_dtm
d1 <- dtm[1:50, ]
# make sure we have different vocabulary for each data set
d1 <- d1[, Matrix::colSums(d1) > 0]
lda <- tidylda(
data = d1,
k = 4,
iterations = 20, burnin = 10,
alpha = 0.1, eta = 0.05,
optimize_alpha = TRUE,
calc_likelihood = TRUE,
calc_r2 = TRUE,
return_data = FALSE,
verbose = FALSE
)
test_that("posterior methods function with good inputs",{
# sample from theta 1 doc
g <- posterior(
x = lda,
matrix = "theta",
which = 1,
times = 10
)
expect_equal(
g %>%
group_by(document, sample) %>%
summarise(tot = sum(theta)) %>%
.[["tot"]] %>%
sum(),
10
)
# sample from theta many docs
g <- posterior(
x = lda,
matrix = "theta",
which = 1:3,
times = 10
)
expect_equal(
g %>%
group_by(document, sample) %>%
summarise(tot = sum(theta)) %>%
.[["tot"]] %>%
sum(),
30
)
# sample from beta 1 doc
g <- posterior(
x = lda,
matrix = "beta",
which = 1,
times = 10
)
expect_equal(
g %>%
group_by(token, sample) %>%
summarise(tot = sum(beta)) %>%
.[["tot"]] %>%
sum(),
10
)
# sample from beta many docs
g <- posterior(
x = lda,
matrix = "beta",
which = 1:3,
times = 10
)
expect_equal(
g %>%
group_by(token, sample) %>%
summarise(tot = sum(beta)) %>%
.[["tot"]] %>%
sum(),
30
)
})
test_that("posterior methods throw errors when they should",{
# malformed matrix
expect_error(
g <- posterior(
x = lda,
matrix = "something",
which = 1,
times = 10
),
label = "malformed matrix"
)
# which has NAs
expect_error(
g <- posterior(
x = lda,
matrix = "theta",
which = c(1, NA),
times = 10
),
label = "which has NA"
)
# which has negatives
expect_error(
g <- posterior(
x = lda,
matrix = "theta",
which = c(1, -2),
times = 10
),
label = "which has negative"
)
# times is too long
expect_error(
g <- posterior(
x = lda,
matrix = "theta",
which = c(1),
times = 10:11
),
label = "times is too long"
)
# times is not numeric
expect_error(
g <- posterior(
x = lda,
matrix = "theta",
which = c(1),
times = "10:11"
),
label = "times is not numeric"
)
# times is negative
expect_error(
g <- posterior(
x = lda,
matrix = "theta",
which = c(1),
times = -10
),
label = "times is negative"
)
})
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.