Nothing
default_reps <- replicates()
test_reps <- replicates(
start_data_replicates = 1,
model_sample_replicates = 2,
end_to_end_replicates = 3
)
# Constructor tests ----------------------------------------------------------
test_that("default replicates object behavior", {
# expect correct class definition
expect_s3_class(default_reps, "replicates")
# expect correct default values
expect_equal(default_reps[["start_data_replicates"]], 1)
expect_equal(default_reps[["model_sample_replicates"]], 1)
expect_equal(default_reps[["end_to_end_replicates"]], 1)
expect_equal(default_reps[["total_replicates"]], 1)
})
test_that("replicate total accounting", {
# expect total replicates calculates product correctly
expect_equal(test_reps[["total_replicates"]], 6)
})
test_that("replicates input type checking", {
# expect error for incorrect types
expect_error(
replicates(start_data_replicates = FALSE),
regexp = "Argument `start_data_replicates` is not numeric.",
fixed = TRUE
)
expect_error(
replicates(start_data_replicates = 1.5),
regexp = "Argument `start_data_replicates` must be integer-valued.",
fixed = TRUE
)
expect_error(
replicates(start_data_replicates = -1),
regexp = "Argument `start_data_replicates` must be >= 1.",
fixed = TRUE
)
expect_error(
replicates(start_data_replicates = c(1, 2, 3)),
regexp = "Argument `start_data_replicates` must be length 1.",
fixed = TRUE
)
expect_error(
replicates(model_sample_replicates = FALSE),
regexp = "Argument `model_sample_replicates` is not numeric.",
fixed = TRUE
)
expect_error(
replicates(model_sample_replicates = 1.5),
regexp = "Argument `model_sample_replicates` must be integer-valued.",
fixed = TRUE
)
expect_error(
replicates(model_sample_replicates = -1),
regexp = "Argument `model_sample_replicates` must be >= 1.",
fixed = TRUE
)
expect_error(
replicates(model_sample_replicates = c(1, 2, 3)),
regexp = "Argument `model_sample_replicates` must be length 1.",
fixed = TRUE
)
})
test_that("replicates print function", {
print_output <- utils::capture.output(print(test_reps))
expect_identical(
print_output,
c("Replicates",
"",
"Start Data Replicates: 1 ",
"Model Sample Replicates: 2 ",
"End-to-End Replicates: 3 ",
"",
"Total Replicates: 6 ")
)
})
# Tidy API tests ------------------------------------------------------------
test_that("add_replicates functionality", {
old_roadmap <- roadmap(conf_data = acs_conf, start_data = acs_start)
new_roadmap <- old_roadmap |> add_replicates(test_reps)
# expect new object is roadmap
expect_s3_class(new_roadmap, "roadmap")
# expect new_roadmap has right replicates object
expect_identical(new_roadmap[["replicates"]], test_reps)
})
test_that("update_replicates functionality", {
old_roadmap <- roadmap(conf_data = acs_conf, start_data = acs_start)
new_roadmap <- old_roadmap |>
update_replicates(model_sample_replicates = 5,
end_to_end_replicates = 7)
# expect new object is roadmap
expect_s3_class(new_roadmap, "roadmap")
# expect new_roadmap has updated replicates values
expect_equal(new_roadmap[["replicates"]][["model_sample_replicates"]], 5)
expect_equal(new_roadmap[["replicates"]][["end_to_end_replicates"]], 7)
# expect total_replicates updates
expect_equal(new_roadmap[["replicates"]][["total_replicates"]], 35)
})
test_that("reset_replicates functionality", {
old_roadmap <- roadmap(conf_data = acs_conf, start_data = acs_start,
replicates = test_reps)
new_roadmap <- old_roadmap |> reset_replicates()
# expect new object is roadmap
expect_s3_class(new_roadmap, "roadmap")
# expect new object has default replicate settings
expect_identical(new_roadmap[["replicates"]], default_reps)
})
test_that("validate_replicates() catches manual overrides", {
# Create basic roadmap
data <- dplyr::select(mtcars, cyl, mpg, disp, hp, gear)
test_reps <- replicates(start_data_replicates = 1,
model_sample_replicates = 2,
end_to_end_replicates = 3)
roadmap <- roadmap(conf_data = data,
start_data = dplyr::select(data, cyl, gear)) |>
add_sequence_numeric(everything(), method = "correlation", cor_var = "mpg") |>
add_replicates(test_reps)
# Manually override start data replicates
roadmap$replicates$start_data_replicates <- 2
dt_mod <- parsnip::decision_tree() |>
parsnip::set_engine("rpart") |>
parsnip::set_mode("regression")
synth_spec <- synth_spec(default_regression_model = dt_mod,
default_regression_sampler = sample_rpart)
# Validator inside presynth() should catch error due to manual overriding
expect_error(
expect_warning(
presynth(roadmap = roadmap,
synth_spec = synth_spec)
)
)
})
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.