Nothing
context("parameter functions")
library(tealeaves)
test_that("some parameters can be defined as functions", {
error_message <- 'no applicable method for \'set_units\' applied to an object of class "function"'
blank_function <- function() {}
# Constants ----
nms <- parameter_names("constants")
.x <- as.vector(setNames(rep(1, length(nms)), nms), mode = "list")
cs <- constants(.x)
expect_s3_class(cs, c("constants", "list"))
parameter_function <- c("nu_constant", "sh_constant")
parameter_numeric <- setdiff(nms, parameter_function)
.x1 <- .x
.x1[[sample(parameter_numeric, 1)]] <- blank_function
expect_error(constants(.x1), regexp = error_message)
.x1 <- .x
for (i in parameter_function) .x1[[i]] <- blank_function
expect_error(constants(.x1), regexp = NA)
# Environmental parameters ----
nms <- parameter_names("enviro")
.x <- as.vector(setNames(rep(1, length(nms)), nms), mode = "list")
ep <- enviro_par(.x)
expect_s3_class(ep, c("enviro_par", "list"))
parameter_function <- c("T_sky")
parameter_numeric <- setdiff(nms, parameter_function)
.x1 <- .x
.x1[[sample(parameter_numeric, 1)]] <- blank_function
expect_error(enviro_par(.x1), regexp = error_message)
.x1 <- .x
for (i in parameter_function) .x1[[i]] <- blank_function
expect_error(enviro_par(.x1), regexp = NA)
# Leaf parameters ----
nms <- parameter_names("leaf")
.x <- as.vector(setNames(rep(1, length(nms)), nms), mode = "list")
lp <- leaf_par(.x)
expect_s3_class(lp, c("leaf_par", "list"))
parameter_function <- NULL
parameter_numeric <- setdiff(nms, parameter_function)
.x1 <- .x
.x1[[sample(parameter_numeric, 1)]] <- blank_function
expect_error(leaf_par(.x1), regexp = error_message)
.x1 <- .x
for (i in parameter_function) .x1[[i]] <- blank_function
expect_error(leaf_par(.x1), regexp = NA)
})
test_that("parameter function replacements must be length 1L", {
# Revisit this test once I have vetted replacing defaults for nu_constant and sh_constant
# x <- .parameter_functions("constants")
# for (i in x) {
#
# replace <- list(x = c(function() {}, function() {}))
# names(replace) <- i
# expect_error(make_constants(replace = replace))
#
# }
x <- .parameter_functions("enviro")
for (i in x) {
replace <- list(x = c(function() {}, function() {}))
names(replace) <- i
expect_error(make_enviro(replace = replace))
}
x <- .parameter_functions("leaf")
for (i in x) {
replace <- list(x = c(function() {}, function() {}))
names(replace) <- i
expect_error(make_leaf(replace = replace))
}
})
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.