diff --git a/R-package/DESCRIPTION b/R-package/DESCRIPTION index 19410d65a..59728f3c2 100644 --- a/R-package/DESCRIPTION +++ b/R-package/DESCRIPTION @@ -23,7 +23,8 @@ Suggests: ggplot2 (>= 1.0.0), DiagrammeR (>= 0.6), Ckmeans.1d.dp (>= 3.3.1), - vcd (>= 1.3) + vcd (>= 1.3), + testthat Depends: R (>= 2.10) Imports: diff --git a/R-package/tests/testthat.R b/R-package/tests/testthat.R new file mode 100644 index 000000000..53cc6caba --- /dev/null +++ b/R-package/tests/testthat.R @@ -0,0 +1,4 @@ +library(testthat) +library(xgboost) + +test_check("xgboost") diff --git a/R-package/tests/testthat/test_basic.R b/R-package/tests/testthat/test_basic.R new file mode 100644 index 000000000..1c4a85921 --- /dev/null +++ b/R-package/tests/testthat/test_basic.R @@ -0,0 +1,34 @@ +require(xgboost) + +context("basic functions") + +test_that("data loading", { + data(agaricus.train, package='xgboost') + data(agaricus.test, package='xgboost') +}) + +test_that("train and prediction",{ + train = agaricus.train + test = agaricus.test + bst = xgboost(data = train$data, label = train$label, max.depth = 2, + eta = 1, nthread = 2, nround = 2, objective = "binary:logistic") + pred = predict(bst, test$data) +}) + +test_that("early stopping", { + res = xgb.cv(data = train$data, label = train$label, max.depth = 2, nfold = 5, + eta = 0.3, nthread = 2, nround = 20, objective = "binary:logistic", + early.stop.round = 3, maximize = FALSE) + expect_true(nrow(res)<20) + bst = xgboost(data = train$data, label = train$label, max.depth = 2, + eta = 0.3, nthread = 2, nround = 20, objective = "binary:logistic", + early.stop.round = 3, maximize = FALSE) + pred = predict(bst, test$data) +}) + +test_that("save_period", { + bst = xgboost(data = train$data, label = train$label, max.depth = 2, + eta = 0.3, nthread = 2, nround = 20, objective = "binary:logistic", + save_period = 10, save_name = "xgb.model") + pred = predict(bst, test$data) +})