Nothing
test_that("pcd_stan_path returns correct path", {
path <- pcd_stan_path()
expect_true(file.exists(path))
expect_true(grepl(file.path("stan", "functions$"), path))
expect_true(dir.exists(path))
})
test_that("pcd_stan_functions returns unique function names", {
functions <- pcd_stan_functions()
expect_type(functions, "character")
expect_gt(length(functions), 0)
expect_length(functions, length(unique(functions)))
# Check if specific Stan functions are included
expected_functions <- c(
"expgrowth_pdf", "expgrowth_lpdf", "expgrowth_cdf", "expgrowth_lcdf",
"expgrowth_rng", "primarycensored_ode", "dist_lcdf",
"primarycensored_lcdf", "primarycensored_lpmf"
)
for (func in expected_functions) {
expect_true(
func %in% functions,
info = paste("Function", func, "not found in pcd_stan_functions output")
)
}
})
test_that("pcd_load_stan_functions loads specific functions", {
specific_functions <- c(
"expgrowth_pdf", "expgrowth_lpdf", "primarycensored_ode"
)
stan_code <- pcd_load_stan_functions(functions = specific_functions)
expect_type(stan_code, "character")
expect_gt(nchar(stan_code), 0)
for (func in specific_functions) {
expect_true(
grepl(func, stan_code),
info = paste("Function", func, "not found in loaded Stan code")
)
}
# Check that other functions are not included
expect_false(grepl("real expgrowth_cdf(", stan_code, fixed = TRUE))
expect_false(grepl("real dist_lcdf(", stan_code, fixed = TRUE))
})
test_that("pcd_load_stan_functions loads all functions as string", {
all_functions <- pcd_stan_functions()
stan_code <- pcd_load_stan_functions(all_functions)
expect_type(stan_code, "character")
expect_gt(nchar(stan_code), 0)
for (func in all_functions) {
expect_true(
grepl(func, stan_code),
info = paste("Function", func, "not found in loaded Stan code")
)
}
})
test_that("pcd_load_stan_functions wraps functions in block when specified", {
stan_code <- pcd_load_stan_functions(wrap_in_block = TRUE)
expect_true(startsWith(stan_code, "functions {"))
expect_true(endsWith(stan_code, "}"))
})
test_that("pcd_load_stan_functions writes to file when specified", {
output_file <- tempfile(fileext = ".stan")
suppressMessages(pcd_load_stan_functions(
write_to_file = TRUE,
output_file = output_file
))
expect_true(file.exists(output_file))
file_content <- readLines(output_file)
expect_gt(length(file_content), 0)
expect_true(
grepl("Stan functions from primarycensored version", file_content[1],
fixed = TRUE
)
)
unlink(output_file)
})
test_that("pcd_load_stan_functions handles non-existent functions gracefully", {
non_existent_function <- "non_existent_function"
stan_code <- pcd_load_stan_functions(functions = non_existent_function)
expect_length(stan_code, 1)
})
test_that("pcd_load_stan_functions loads functions from specific files", {
expgrowth_functions <- c(
"expgrowth_pdf", "expgrowth_lpdf", "expgrowth_cdf",
"expgrowth_lcdf", "expgrowth_rng"
)
stan_code <- pcd_load_stan_functions(functions = expgrowth_functions)
for (func in expgrowth_functions) {
expect_true(
grepl(func, stan_code),
info = paste("Function", func, "not found in loaded Stan code")
)
}
expect_false(grepl("primarycensored_ode", stan_code, fixed = TRUE))
primarycensored_functions <- c(
"primarycensored_ode", "dist_lcdf", "primarycensored_lcdf"
)
stan_code <- pcd_load_stan_functions(functions = primarycensored_functions)
for (func in primarycensored_functions) {
expect_true(
grepl(func, stan_code),
info = paste("Function", func, "not found in loaded Stan code")
)
}
expect_false(grepl("expgrowth_pdf", stan_code, fixed = TRUE))
})
test_that("pcd_stan_files returns correct files", {
# Test with no functions specified
all_files <- pcd_stan_files()
expect_type(all_files, "character")
expect_gt(length(all_files), 0)
expect_true(all(grepl(".stan", all_files, fixed = TRUE)))
# Test with specific functions
expgrowth_functions <- c("expgrowth_pdf", "expgrowth_lpdf")
expgrowth_files <- pcd_stan_files(functions = expgrowth_functions)
expect_type(expgrowth_files, "character")
expect_gt(length(expgrowth_files), 0)
expect_true(all(grepl("expgrowth", expgrowth_files, fixed = TRUE)))
# Test with functions from different files
mixed_functions <- c("expgrowth_pdf", "primarycensored_ode")
mixed_files <- pcd_stan_files(functions = mixed_functions)
expect_type(mixed_files, "character")
expect_gt(length(mixed_files), 1)
expect_true(any(grepl("expgrowth", mixed_files, fixed = TRUE)))
expect_true(any(grepl("primarycensored", mixed_files, fixed = TRUE)))
# Test with non-existent function
non_existent <- pcd_stan_files(functions = "non_existent_function")
expect_type(non_existent, "character")
expect_length(non_existent, 0)
})
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.