context("lgb.plot.importance()") test_that("lgb.plot.importance() should run without error for well-formed inputs", { data(agaricus.train, package = "lightgbm") train <- agaricus.train dtrain <- lgb.Dataset(train$data, label = train$label) params <- list( objective = "binary" , learning_rate = 0.01 , num_leaves = 63L , max_depth = -1L , min_data_in_leaf = 1L , min_sum_hessian_in_leaf = 1.0 ) model <- lgb.train(params, dtrain, 10L) tree_imp <- lgb.importance(model, percentage = TRUE) # Check that there are no plots present before plotting expect_null(dev.list()) resDT <- lgb.plot.importance( tree_imp = tree_imp , top_n = 10L , measure = "Gain" , cex = 0.75 ) # Check that lgb.plot.importance() returns the data.table of the plotted data expect_true(data.table::is.data.table(resDT)) expect_named(resDT, c("Feature", "Gain", "Cover", "Frequency")) # Check that a plot was produced expect_false(is.null(dev.list())) # remove all plots dev.off() expect_null(dev.list()) })