-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
CRAN v0.2.0Changes to be made for next major version of libraryChanges to be made for next major version of library
Milestone
Description
- not enough to have coverage = 100%, we also want to test how well designers work with broad range of
- using expand grid and do.call, test every parameter in the designs
Here is how I would construct a test for a designer where I thought every combination should work, for example. You could do another one for the combinations where it should break.
Note that I am not using expand.grid() directly on parameters here, but am using indices and pulling parameters according to those. Why? Because sometimes you will have to provide vectors and this approach is robust to that (though may need some debugging -- I think Map() call may need [[)
library(testthat)
test_that(
desc = "simple_two_arm_designer does not break over a combination of lots of parameters",
code = {
# Get default args
arguments <- formals(simple_two_arm_designer)
# Define param space for each argument
arguments$N <- c(1,50,1000)
arguments$prob <- c(0,.5,1)
arguments$control_mean <- c(0,1)
arguments$control_sd <- c(0,1)
arguments$ate <- c(0,1)
arguments$treatment_mean <- c(0,1)
arguments$treatment_sd <- c(0,1)
arguments$rho <- c(0,.5,1)
# Get indices for expanding out parameter space
argument_lengths <- sapply(arguments,length)
indices <- lapply(argument_lengths, function(x) 1:x)
# Get indices for every combination of parameters
expand_indices <- do.call(expand.grid, indices)
# Create lists of arguments by grabbing parameters that correspond to indices
argument_list <- apply(expand_indices,1,function(indices) Map(`[`, arguments, indices))
# Try to declare every design for every param combination using the designer
# expect_error(code, NA) means you expect the code to run
# This might be better as a loop that prints the argument_list so you know
# where it is breaking
expect_error(expand_design(simple_two_arm_designer, argument_list),NA)
}
)Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
CRAN v0.2.0Changes to be made for next major version of libraryChanges to be made for next major version of library