muffle = function(x) { expect_warning(res <- x, "to numeric for over time plot") return(res) } test_that("renderOptPathPlot", { # Test 1D-1D + short names + alpha + title ps0 = makeParamSet( makeNumericParam("x") ) op0 = makeOptPathDF(par.set = ps0, y.names = c("y"), minimize = TRUE) X = rnorm(14) dob = c(rep(0, 5), 1:2) for (i in 1:7) { addOptPathEl(op0, x = list( x = X[i * 2]), y = X[i * 2 - 1], dob = dob[i]) } pl = renderOptPathPlot(op0, iter = 0, alpha = FALSE) pl = lapply(c(0, 2), FUN = function(x) { renderOptPathPlot(op0, iter = x, short.x.names = "e", short.y.names = "f") }) pl = plotOptPath(op0, iters = 0:2, pause = FALSE, title = "Optimization Path") # Test 2D(mixed)-3D + marked + ggplot.theme + log + size ps1 = makeParamSet( makeNumericParam("x"), makeDiscreteParam("z", values = list("a", "b")) ) op1 = makeOptPathDF(par.set = ps1, y.names = c("y1", "y2", "y3"), minimize = c(TRUE, FALSE, TRUE)) X = rnorm(100) Z = rnorm(25) Z = ifelse(Z < 0, "a", "b") dob = c(rep(0, 5), 1:20) for (i in 1:25) { addOptPathEl(op1, x = list(x = abs(X[i * 4 - 3]), z = Z[i]), y = c(y1 = X[i * 4 - 2], y2 = abs(X[i * 4 - 1]), y3 = abs(X[i * 4])), dob = dob[i]) } muffle({ pl = renderOptPathPlot(op1, iter = 3) }) pl = lapply(c(0, 20), FUN = function(x) { muffle(renderOptPathPlot(op1, iter = x, marked = "best", ggplot.theme = ggplot2::theme(legend.position = "bottom"), size.points = 1, size.lines = 3)) }) pl = lapply(c(0, 20), FUN = function(x) { muffle(renderOptPathPlot(op1, iter = x, marked = c(4, 10, 18), x.over.time = list(c("x"), c("z")), y.over.time = list(c("y1"), c("y2", "y3")), log = c("x", "y2", "y3"))) }) # Test 1D(discrete)-2D + marked + limits + short names + rest variables ps2 = makeParamSet( makeDiscreteParam("x", values = list("a", "b")) ) op2 = makeOptPathDF(par.set = ps2, y.names = c("y1", "y2"), minimize = c(TRUE, TRUE), include.extra = TRUE) X = rep(c("a", "b"), 4) Y = rnorm(14) dob = c(rep(0, 5), 1:2) for (i in 1:5) { addOptPathEl(op2, x = list(x = X[i]), y = c(y1 = Y[i], y2 = Y[7 + i]), dob = dob[i], extra = list(extra.var = NA)) } for (i in 6:7) { addOptPathEl(op2, x = list(x = X[i]), y = c(y1 = Y[i], y2 = Y[7 + i]), dob = dob[i], extra = list(extra.var = i)) } muffle({ pl = renderOptPathPlot(op2, iter = 2, x.over.time = list(c("x"), c("extra.var")), short.rest.names = c("extra")) }) pl = lapply(c(0, 2), FUN = function(x) { muffle(renderOptPathPlot(op2, iter = x, marked = c(3), xlim = list(YSpace = c(-10, 10)), ylim = list(YSpace = c(-10, 10), XSpace = c(0, 10)), short.x.names = "variable1", short.y.names = c("y", "z"))) }) # Test 3D(mixed)-1D + colours + missing values + limits + short names + scale + # impute.scale + impute.value ps3 = makeParamSet( makeNumericParam("x"), makeNumericParam("y", requires = quote(x < 0.7)), makeDiscreteParam("z", values = list("a", "b", "c"), requires = quote(x > -0.7)) ) op3 = makeOptPathDF(par.set = ps3, y.names = c("y1"), minimize = c(TRUE)) X = rnorm(7) X2 = rnorm(7) Y = rnorm(7) X2[X >= 0.7] = NA X3 = rep(c("a", "b", "c"), 5) X3[X <= -0.7] = NA dob = c(rep(0, 5), 1:2) for (i in 1:7) { addOptPathEl(op3, x = list(x = X[i], y = X2[i], z = X3[i]), y = c(y1 = Y[i]), dob = dob[i]) } pl = sapply(c(0, 2), FUN = function(x) { muffle(renderOptPathPlot(op3, iter = x, scale = "globalminmax", impute.scale = 2, impute.value = "miss")) }) pl = sapply(c(0, 2), FUN = function(x) { muffle(renderOptPathPlot(op3, iter = x, xlim = list(YSpace = c(-0.5, 0.5)), short.x.names = c("a", "b", "c"), colours = c("black", "yellow", "orange", "green"), scale = "globalminmax")) }) # Test subsetting muffle(renderOptPathPlot(op1, iter = 2, subset.obs = c(1, 2, 6, 7))) renderOptPathPlot(op1, iter = 0, subset.vars = 1) muffle(renderOptPathPlot(op1, iter = 0, subset.targets = 2:3)) })