context("Test error messages - new api")
test_that("Columns with all missing stop", {
iris2 <- iris
iris2$Sepal.Width = NA
expect_error(
gbmt(Species == 'setosa' ~ ., data = iris2, distribution = gbm_dist('Bernoulli'), train_params = training_params(num_trees=2))
,'variable 2: Sepal.Width is not of type - numeric, ordered or factor.'
)
iris2$Petal.Width = NA
expect_error(
gbmt(Species == 'setosa' ~ ., data = iris2, distribution = gbm_dist('Bernoulli'), train_params = training_params(num_trees=2))
,'variable 2, 4: Sepal.Width, Petal.Width is not of type - numeric, ordered or factor.'
)
})
test_that("x longer than y", {
expect_error(
gbmt_fit(x = iris[,c('Sepal.Length', 'Petal.Length')]
, y = (iris$Species[1:145] == 'setosa')
, distribution = gbm_dist('Bernoulli'), train_params=training_params(num_trees = 2))
,'The number of rows in x does not equal the length of y\\.')
})
test_that("Excessive levels in x", {
testExcess <- data.frame(
y = sample(c(0,1), 1025, replace = TRUE)
,x1 = runif(1025)
,x2 = factor(1:1025)
)
expect_error(
gbmt_fit(x = testExcess[,c('x1', 'x2')]
, y = testExcess$y
, distribution = gbm_dist("Bernoulli"), train_params=training_params(num_trees = 2))
,'gbm does not currently handle categorical variables with more than 1024 levels\\. Variable 2\\: x2 has 1025 levels\\.')
})
test_that("Inacceptable classes", {
testClasses <- data.frame(
y = sample(c(0,1), 15, replace = TRUE)
,x1 = runif(15)
,x2 = seq(as.Date('2015-01-01'), as.Date('2015-01-15'), 'days')
)
expect_error(
gbmt_fit(x = testClasses[,c('x1', 'x2')]
, y = testClasses$y
, distribution = gbm_dist('Bernoulli'), train_params=training_params(num_trees = 2, min_num_obs_in_node = 1))
,'variable 2\\: x2 is not of type - numeric, ordered or factor\\.')
})
context("Test error messages - old api")
test_that("Columns with all missing stop", {
iris2 <- iris
iris2$Sepal.Width = NA
expect_error(
gbm(Species == 'setosa' ~ ., data = iris2, distribution = 'Bernoulli', n.trees = 2)
,'variable 2: Sepal.Width is not of type - numeric, ordered or factor.'
)
iris2$Petal.Width = NA
expect_error(
gbm(Species == 'setosa' ~ ., data = iris2, distribution = 'Bernoulli', n.trees = 2)
,'variable 2, 4: Sepal.Width, Petal.Width is not of type - numeric, ordered or factor.'
)
})
test_that("x longer than y", {
expect_error(
gbm.fit(x = iris[,c('Sepal.Length', 'Petal.Length')]
, y = (iris$Species[1:145] == 'setosa')
, distribution = 'Bernoulli', n.trees = 2)
,'The number of rows in x does not equal the length of y\\.')
})
test_that("Excessive levels in x", {
testExcess <- data.frame(
y = sample(c(0,1), 1025, replace = TRUE)
,x1 = runif(1025)
,x2 = factor(1:1025)
)
expect_error(
gbm.fit(x = testExcess[,c('x1', 'x2')]
, y = testExcess$y
, distribution = 'Bernoulli', n.trees = 2)
,'gbm does not currently handle categorical variables with more than 1024 levels\\. Variable 2\\: x2 has 1025 levels\\.')
})
test_that("Inacceptable classes", {
testClasses <- data.frame(
y = sample(c(0,1), 15, replace = TRUE)
,x1 = runif(15)
,x2 = seq(as.Date('2015-01-01'), as.Date('2015-01-15'), 'days')
)
expect_error(
gbm.fit(x = testClasses[,c('x1', 'x2')]
, y = testClasses$y
, distribution = 'Bernoulli', n.trees = 2, n.minobsinnode = 1)
,'variable 2\\: x2 is not of type - numeric, ordered or factor\\.')
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.