[R] more attribute handling functionality
This commit is contained in:
@@ -28,15 +28,32 @@ test_that("xgb.dump works", {
|
||||
expect_true(xgb.dump(bst.Tree, 'xgb.model.dump', with.stats = T))
|
||||
})
|
||||
|
||||
test_that("xgb.attr", {
|
||||
test_that("xgb-attribute functionality", {
|
||||
val <- "my attribute value"
|
||||
list.val <- list(my_attr=val, a=123, b='ok')
|
||||
list.ch <- list.val[order(names(list.val))]
|
||||
list.ch <- lapply(list.ch, as.character)
|
||||
# proper input:
|
||||
expect_error(xgb.attr(bst.Tree, NULL))
|
||||
expect_error(xgb.attr(val, val))
|
||||
# set & get:
|
||||
expect_null(xgb.attr(bst.Tree, "asdf"))
|
||||
expect_null(xgb.attributes(bst.Tree)) # initially, expect no attributes
|
||||
xgb.attr(bst.Tree, "my_attr") <- val
|
||||
expect_equal(xgb.attr(bst.Tree, "my_attr"), val)
|
||||
xgb.attributes(bst.Tree) <- list.val
|
||||
expect_equal(xgb.attributes(bst.Tree), list.ch)
|
||||
# serializing:
|
||||
xgb.save(bst.Tree, 'xgb.model')
|
||||
bst1 <- xgb.load('xgb.model')
|
||||
expect_equal(xgb.attr(bst1, "my_attr"), val)
|
||||
bst <- xgb.load('xgb.model')
|
||||
expect_equal(xgb.attr(bst, "my_attr"), val)
|
||||
expect_equal(xgb.attributes(bst), list.ch)
|
||||
# deletion:
|
||||
xgb.attr(bst, "my_attr") <- NULL
|
||||
expect_null(xgb.attr(bst, "my_attr"))
|
||||
expect_equal(xgb.attributes(bst), list.ch[c("a", "b")])
|
||||
xgb.attributes(bst) <- list(a=NULL, b=NULL)
|
||||
expect_null(xgb.attributes(bst))
|
||||
})
|
||||
|
||||
test_that("xgb.model.dt.tree works with and without feature names", {
|
||||
|
||||
Reference in New Issue
Block a user