Nothing
test_that("ao works", {
himmelblau <- function(x) (x[1]^2 + x[2] - 11)^2 + (x[1] + x[2]^2 - 7)^2
gradient <- function(x) {
c(
4 * x[1] * (x[1]^2 + x[2] - 11) + 2 * (x[1] + x[2]^2 - 7),
2 * (x[1]^2 + x[2] - 11) + 4 * x[2] * (x[1] + x[2]^2 - 7)
)
}
ao_out <- ao(f = himmelblau, initial = c(0, 0), gradient = gradient)
checkmate::expect_list(ao_out, len = 5)
ao_random_out <- ao(f = himmelblau, initial = c(0, 0), partition = "random", gradient = gradient)
checkmate::expect_list(ao_random_out, len = 5)
})
test_that("ao with additional parameters works", {
himmelblau <- function(x, a, b, c) {
(x[1]^a + x[2] - b)^a + (x[1] + x[2]^a - c)^a
}
expect_error(
ao(f = himmelblau, initial = c(0, 0)),
"Function evaluation threw an error: argument \"a\" is missing, with no default"
)
ao_out <- ao(f = himmelblau, initial = c(0, 0), a = 2, b = 11, c = 7)
checkmate::expect_list(ao_out, len = 5)
})
test_that("ao with NULL values for fixed arguments works", {
f <- function(x, a, b, ind) {
if (is.null(ind)) {
(x[1]^2 + x[2] + a)^2 + (x[1] + x[2]^2 + b)^2 + (x[3] - 1)^2
}
}
ao_out <- ao(f = f, initial = c(0, 0, 0), a = -11, b = -7, ind = NULL)
checkmate::expect_list(ao_out, len = 5)
})
test_that("ao with a different base optimizer works", {
himmelblau <- function(x) (x[1]^2 + x[2] - 11)^2 + (x[1] + x[2]^2 - 7)^2
ao_out <- ao(f = himmelblau, initial = c(0, 0), base_optimizer = optimizeR::Optimizer$new("stats::nlm"))
checkmate::expect_list(ao_out, len = 5)
})
test_that("ao with custom partition works", {
f <- function(x) (x[1]^2 + x[2])^2 + (x[1] + x[2]^2)^2 + (x[3] + x[4]^2)^2
ao_custom <- ao(f = f, initial = c(1, 1, 1, 1), partition = list(1, 2, 3:4))
checkmate::expect_list(ao_custom, len = 5)
})
test_that("multiple ao processes work", {
himmelblau <- function(x) (x[1]^2 + x[2] - 11)^2 + (x[1] + x[2]^2 - 7)^2
out_multi <- ao(
f = himmelblau,
initial = list(c(0, 0), c(1, 1)),
partition = list("random", list(2, 1), "none", "sequential"),
base_optimizer = list(
optimizeR::Optimizer$new("stats::nlm"),
optimizeR::Optimizer$new("stats::optim")
),
add_details = FALSE
)
checkmate::expect_list(out_multi, len = 4)
})
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.