Skip to content

Commit

Permalink
feat: pass additional information in result to instance (#255)
Browse files Browse the repository at this point in the history
  • Loading branch information
be-marc authored Oct 15, 2024
1 parent 4572608 commit 2cf3185
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 10 deletions.
4 changes: 3 additions & 1 deletion R/OptimInstance.R
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,9 @@ OptimInstance = R6Class("OptimInstance",
#' columns for extra information.
#' @param y (`numeric(1)`)\cr
#' Optimal outcome.
assign_result = function(xdt, y) {
#' @param ... (`any`)\cr
#' ignored.
assign_result = function(xdt, y, ...) {
stop("Abstract class")
},

Expand Down
15 changes: 7 additions & 8 deletions R/Optimizer.R
Original file line number Diff line number Diff line change
Expand Up @@ -166,19 +166,18 @@ Optimizer = R6Class("Optimizer",
assign_result_default = function(inst) {
assert_r6(inst, "OptimInstance")

res = inst$archive$best()
xydt = inst$archive$best()
ids = inst$search_space$ids()
# workaround until ... works
if ("internal_tuned_values" %in% names(res)) ids = c(ids, "internal_tuned_values")
xdt = res[, ids, with = FALSE]
xdt = xydt[, ids, with = FALSE]

if (inherits(inst, "OptimInstanceBatchMultiCrit") || inherits(inst, "OptimInstanceAsyncMultiCrit")) {
ydt = res[, inst$archive$cols_y, with = FALSE]
inst$assign_result(xdt, ydt)
ydt = xydt[, inst$archive$cols_y, with = FALSE]
# upstream packages might extract extra columns from xydt
inst$assign_result(xdt, ydt, xydt = xydt)
} else {
# unlist keeps name!
y = unlist(res[, inst$archive$cols_y, with = FALSE])
inst$assign_result(xdt, y)
y = unlist(xydt[, inst$archive$cols_y, with = FALSE])
inst$assign_result(xdt, y, xydt = xydt)
}

invisible(NULL)
Expand Down
5 changes: 4 additions & 1 deletion man/OptimInstance.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions tests/testthat/test_TerminatorStagnationHypervolume.R
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
test_that("TerminatorStagnationHypervolume works", {
skip_if_not_installed("emoa")

terminator = trm("stagnation_hypervolume")
terminator$param_set$values$iters = 5
terminator$param_set$values$threshold = 0
Expand Down

0 comments on commit 2cf3185

Please sign in to comment.